in Graphics/ShapesGallery/app.cs [39:250]
private void CreateAndShowMainWindow()
{
// Create the application's main window
_myWindow = new Window();
// Add a Border
_myBorder = new Border
{
BorderBrush = Brushes.Black,
BorderThickness = new Thickness(2),
Width = 400,
Height = 600,
Padding = new Thickness(15),
Background = Brushes.White
};
// Create a Grid to host the Shapes
_myGrid = new Grid {Margin = new Thickness(15)};
_myColDef1 = new ColumnDefinition {Width = new GridLength(125)};
_myColDef2 = new ColumnDefinition {Width = new GridLength(1, GridUnitType.Star)};
_myGrid.ColumnDefinitions.Add(_myColDef1);
_myGrid.ColumnDefinitions.Add(_myColDef2);
_myRowDef = new RowDefinition();
_myRowDef1 = new RowDefinition();
_myRowDef2 = new RowDefinition();
_myRowDef3 = new RowDefinition();
_myRowDef4 = new RowDefinition();
_myRowDef5 = new RowDefinition();
_myRowDef6 = new RowDefinition();
_myGrid.RowDefinitions.Add(_myRowDef);
_myGrid.RowDefinitions.Add(_myRowDef1);
_myGrid.RowDefinitions.Add(_myRowDef2);
_myGrid.RowDefinitions.Add(_myRowDef3);
_myGrid.RowDefinitions.Add(_myRowDef4);
_myGrid.RowDefinitions.Add(_myRowDef5);
_myGrid.RowDefinitions.Add(_myRowDef6);
_myTextBlock = new TextBlock
{
FontSize = 20,
Text = "WPF Shapes Gallery",
HorizontalAlignment = HorizontalAlignment.Left,
VerticalAlignment = VerticalAlignment.Center
};
_myGrid.Children.Add(_myTextBlock);
Grid.SetRow(_myTextBlock, 0);
Grid.SetColumnSpan(_myTextBlock, 2);
// Add a Rectangle Element
_myRect = new Rectangle
{
Stroke = Brushes.Black,
Fill = Brushes.SkyBlue,
HorizontalAlignment = HorizontalAlignment.Left,
VerticalAlignment = VerticalAlignment.Center,
Height = 50,
Width = 50
};
_myGrid.Children.Add(_myRect);
Grid.SetRow(_myRect, 1);
Grid.SetColumn(_myRect, 0);
var myTextBlock1 = new TextBlock
{
FontSize = 14,
Text = "A Rectangle Element",
VerticalAlignment = VerticalAlignment.Center
};
_myGrid.Children.Add(myTextBlock1);
Grid.SetRow(myTextBlock1, 1);
Grid.SetColumn(myTextBlock1, 1);
// Add an Ellipse Element
_myEllipse = new Ellipse
{
Stroke = Brushes.Black,
Fill = Brushes.DarkBlue,
HorizontalAlignment = HorizontalAlignment.Left,
VerticalAlignment = VerticalAlignment.Center,
Width = 50,
Height = 75
};
_myGrid.Children.Add(_myEllipse);
Grid.SetRow(_myEllipse, 2);
Grid.SetColumn(_myEllipse, 0);
var myTextBlock2 = new TextBlock
{
FontSize = 14,
Text = "An Ellipse Element",
VerticalAlignment = VerticalAlignment.Center
};
_myGrid.Children.Add(myTextBlock2);
Grid.SetRow(myTextBlock2, 2);
Grid.SetColumn(myTextBlock2, 1);
// Add a Line Element
_myLine = new Line
{
Stroke = Brushes.LightSteelBlue,
X1 = 1,
X2 = 50,
Y1 = 1,
Y2 = 50,
HorizontalAlignment = HorizontalAlignment.Left,
VerticalAlignment = VerticalAlignment.Center,
StrokeThickness = 2
};
_myGrid.Children.Add(_myLine);
Grid.SetRow(_myLine, 3);
Grid.SetColumn(_myLine, 0);
var myTextBlock3 = new TextBlock
{
FontSize = 14,
Text = "A Line Element",
VerticalAlignment = VerticalAlignment.Center
};
_myGrid.Children.Add(myTextBlock3);
Grid.SetRow(myTextBlock3, 3);
Grid.SetColumn(myTextBlock3, 1);
//Add the Path Element
_myPath = new Path
{
Stroke = Brushes.Black,
Fill = Brushes.MediumSlateBlue,
StrokeThickness = 4,
HorizontalAlignment = HorizontalAlignment.Left,
VerticalAlignment = VerticalAlignment.Center
};
var myEllipseGeometry = new EllipseGeometry
{
Center = new Point(50, 50),
RadiusX = 25,
RadiusY = 25
};
_myPath.Data = myEllipseGeometry;
_myGrid.Children.Add(_myPath);
Grid.SetRow(_myPath, 4);
Grid.SetColumn(_myPath, 0);
var myTextBlock4 = new TextBlock
{
FontSize = 14,
Text = "A Path Element",
VerticalAlignment = VerticalAlignment.Center
};
_myGrid.Children.Add(myTextBlock4);
Grid.SetRow(myTextBlock4, 4);
Grid.SetColumn(myTextBlock4, 1);
//Add the Polygon Element
_myPolygon = new Polygon
{
Stroke = Brushes.Black,
Fill = Brushes.LightSeaGreen,
StrokeThickness = 2,
HorizontalAlignment = HorizontalAlignment.Left,
VerticalAlignment = VerticalAlignment.Center
};
var point1 = new Point(1, 50);
var point2 = new Point(10, 80);
var point3 = new Point(50, 50);
var myPointCollection = new PointCollection {point1, point2, point3};
_myPolygon.Points = myPointCollection;
_myGrid.Children.Add(_myPolygon);
Grid.SetRow(_myPolygon, 5);
Grid.SetColumn(_myPolygon, 0);
var myTextBlock5 = new TextBlock
{
Text = "A Polygon Element",
FontSize = 14,
VerticalAlignment = VerticalAlignment.Center
};
_myGrid.Children.Add(myTextBlock5);
Grid.SetRow(myTextBlock5, 5);
Grid.SetColumn(myTextBlock5, 1);
// Add the Polyline Element
_myPolyline = new Polyline
{
Stroke = Brushes.SlateGray,
StrokeThickness = 2,
FillRule = FillRule.EvenOdd
};
var point4 = new Point(1, 50);
var point5 = new Point(10, 80);
var point6 = new Point(20, 40);
var myPointCollection2 = new PointCollection {point4, point5, point6};
_myPolyline.Points = myPointCollection2;
_myGrid.Children.Add(_myPolyline);
Grid.SetRow(_myPolyline, 6);
Grid.SetColumn(_myPolyline, 0);
var myTextBlock6 = new TextBlock
{
FontSize = 14,
Text = "A Polyline Element",
VerticalAlignment = VerticalAlignment.Center
};
_myGrid.Children.Add(myTextBlock6);
Grid.SetRow(myTextBlock6, 6);
Grid.SetColumn(myTextBlock6, 1);
// Add the Grid to the Window as Content and show the Window
_myBorder.Child = _myGrid;
_myWindow.Content = _myBorder;
_myWindow.Background = Brushes.LightSlateGray;
_myWindow.Title = "Shapes Sample";
_myWindow.Show();
}