C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Then: Please create a Window_Loaded event with the Loaded attribute. Here we can add Rectangles to the Canvas.
List: I build up a list of Rect objects. In the foreach-loop, I create a Rectangle for each object and add it to the Canvas.
Tip: To position within a Canvas, please use Canvas.SetTop and Canvas.SetLeft. SetBottom and SetRight are also available.
Thus: With these static methods (accessed on the Canvas type) we adjust a child element's coordinates.
Example markup: XAML
<Window x:Class="WpfApplication27.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
Loaded="Window_Loaded">
<Grid>
<Canvas HorizontalAlignment="Left" Height="319" Margin="0"
VerticalAlignment="Top" Width="517"
Name="Can1"/>
</Grid>
</Window>
Example code: C#
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Shapes;
namespace WpfApplication27
{
class Rect
{
public int Width { get; set; }
public int Height { get; set; }
public int Left { get; set; }
public int Top { get; set; }
public SolidColorBrush Color { get; set; }
}
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
// ... Create list of our Rect objects.
List<Rect> rects = new List<Rect>();
// ... Add Rect objects.
rects.Add(new Rect()
{
Width = 100,
Height = 100,
Left = 0,
Top = 0,
Color = Brushes.Aquamarine
});
rects.Add(new Rect()
{
Width = 50,
Height = 50,
Left = 100,
Top = 100,
Color = Brushes.Cornsilk
});
rects.Add(new Rect()
{
Width = 25,
Height = 25,
Left = 150,
Top = 150,
Color = Brushes.Peru
});
foreach (Rect rect in rects)
{
// ... Create Rectangle object.
Rectangle r = new Rectangle();
r.Width = rect.Width;
r.Height = rect.Height;
r.Fill = rect.Color;
// ... Set canvas position based on Rect object.
Canvas.SetLeft(r, rect.Left);
Canvas.SetTop(r, rect.Top);
// ... Add to canvas.
Can1.Children.Add(r);
}
}
}
}