1 //Margin_Padding_Alignment_Sample.cpp file
2 using namespace System
;
3 using namespace System::Windows
;
4 using namespace System::Windows::Controls
;
5 using namespace System::Windows::Media
;
6 using namespace System::Windows::Shapes
;
7 using namespace System::Threading
;
9 namespace Margin_Padding_Alignment_Sample
{
11 public ref
class app
: Application
{
19 virtual void OnStartup (StartupEventArgs
^ e
) override
21 Application::OnStartup(e
);
22 CreateAndShowMainWindow();
26 void CreateAndShowMainWindow ()
28 mainWindow
= gcnew
Window();
30 myBorder
= gcnew
Border();
31 myBorder
->Background
= Brushes::LightBlue
;
32 myBorder
->BorderBrush
= Brushes::Black
;
33 myBorder
->BorderThickness
= Thickness(2);
34 myBorder
->CornerRadius
= CornerRadius(45);
35 myBorder
->Padding
= Thickness(25);
38 myGrid
= gcnew
Grid();
39 myGrid
->Background
= Brushes::White
;
40 myGrid
->ShowGridLines
= true;
42 // Define the Columns.
43 ColumnDefinition
^ myColDef1
= gcnew
ColumnDefinition();
44 myColDef1
->Width
= GridLength(1, GridUnitType::Auto
);
45 ColumnDefinition
^ myColDef2
= gcnew
ColumnDefinition();
46 myColDef2
->Width
= GridLength(1, GridUnitType::Star
);
47 ColumnDefinition
^ myColDef3
= gcnew
ColumnDefinition();
48 myColDef3
->Width
= GridLength(1, GridUnitType::Auto
);
50 // Add the ColumnDefinitions to the Grid.
51 myGrid
->ColumnDefinitions
->Add(myColDef1
);
52 myGrid
->ColumnDefinitions
->Add(myColDef2
);
53 myGrid
->ColumnDefinitions
->Add(myColDef3
);
55 // Add the first child StackPanel.
56 StackPanel
^ myStackPanel
= gcnew
StackPanel();
57 myStackPanel
->HorizontalAlignment
= HorizontalAlignment::Left
;
58 myStackPanel
->VerticalAlignment
= VerticalAlignment::Top
;
59 Grid::SetColumn(myStackPanel
, 0);
60 Grid::SetRow(myStackPanel
, 0);
61 TextBlock
^ myTextBlock1
= gcnew
TextBlock();
62 myTextBlock1
->FontSize
= 18;
63 myTextBlock1
->HorizontalAlignment
= HorizontalAlignment::Center
;
64 myTextBlock1
->Margin
= Thickness(0, 0, 0, 15);
65 myTextBlock1
->Text
= "StackPanel 1";
66 Button
^ myButton1
= gcnew
Button();
67 myButton1
->Margin
= Thickness(0, 10, 0, 10);
68 myButton1
->Content
= "Button 1";
69 Button
^ myButton2
= gcnew
Button();
70 myButton2
->Margin
= Thickness(0, 10, 0, 10);
71 myButton2
->Content
= "Button 2";
72 Button
^ myButton3
= gcnew
Button();
73 myButton3
->Margin
= Thickness(0, 10, 0, 10);
74 TextBlock
^ myTextBlock2
= gcnew
TextBlock();
75 myTextBlock2
->Text
= "ColumnDefinition.Width = \"Auto\"";
76 TextBlock
^ myTextBlock3
= gcnew
TextBlock();
77 myTextBlock3
->Text
= "StackPanel.HorizontalAlignment = \"Left\"";
78 TextBlock
^ myTextBlock4
= gcnew
TextBlock();
79 myTextBlock4
->Text
= "StackPanel.VerticalAlignment = \"Top\"";
80 TextBlock
^ myTextBlock5
= gcnew
TextBlock();
81 myTextBlock5
->Text
= "StackPanel.Orientation = \"Vertical\"";
82 TextBlock
^ myTextBlock6
= gcnew
TextBlock();
83 myTextBlock6
->Text
= "Button.Margin = \"1,10,0,10\"";
84 myStackPanel
->Children
->Add(myTextBlock1
);
85 myStackPanel
->Children
->Add(myButton1
);
86 myStackPanel
->Children
->Add(myButton2
);
87 myStackPanel
->Children
->Add(myButton3
);
88 myStackPanel
->Children
->Add(myTextBlock2
);
89 myStackPanel
->Children
->Add(myTextBlock3
);
90 myStackPanel
->Children
->Add(myTextBlock4
);
91 myStackPanel
->Children
->Add(myTextBlock5
);
92 myStackPanel
->Children
->Add(myTextBlock6
);
94 // Add the second child StackPanel.
95 StackPanel
^ myStackPanel2
= gcnew
StackPanel();
96 myStackPanel2
->HorizontalAlignment
= HorizontalAlignment::Stretch
;
97 myStackPanel2
->VerticalAlignment
= VerticalAlignment::Top
;
98 myStackPanel2
->Orientation
= Orientation::Vertical
;
99 Grid::SetColumn(myStackPanel2
, 1);
100 Grid::SetRow(myStackPanel2
, 0);
101 TextBlock
^ myTextBlock7
= gcnew
TextBlock();
102 myTextBlock7
->FontSize
= 18;
103 myTextBlock7
->HorizontalAlignment
= HorizontalAlignment::Center
;
104 myTextBlock7
->Margin
= Thickness(0, 0, 0, 15);
105 myTextBlock7
->Text
= "StackPanel 2";
106 Button
^ myButton4
= gcnew
Button();
107 myButton4
->Margin
= Thickness(10, 0, 10, 0);
108 myButton4
->Content
= "Button 4";
109 Button
^ myButton5
= gcnew
Button();
110 myButton5
->Margin
= Thickness(10, 0, 10, 0);
111 myButton5
->Content
= "Button 5";
112 Button
^ myButton6
= gcnew
Button();
113 myButton6
->Margin
= Thickness(10, 0, 10, 0);
114 myButton6
->Content
= "Button 6";
115 TextBlock
^ myTextBlock8
= gcnew
TextBlock();
116 myTextBlock8
->HorizontalAlignment
= HorizontalAlignment::Center
;
117 myTextBlock8
->Text
= "ColumnDefinition.Width = \"*\"";
118 TextBlock
^ myTextBlock9
= gcnew
TextBlock();
119 myTextBlock9
->HorizontalAlignment
= HorizontalAlignment::Center
;
120 myTextBlock9
->Text
= "StackPanel.HorizontalAlignment = \"Stretch\"";
121 TextBlock
^ myTextBlock10
= gcnew
TextBlock();
122 myTextBlock10
->HorizontalAlignment
= HorizontalAlignment::Center
;
123 myTextBlock10
->Text
= "StackPanel.VerticalAlignment = \"Top\"";
124 TextBlock
^ myTextBlock11
= gcnew
TextBlock();
125 myTextBlock11
->HorizontalAlignment
= HorizontalAlignment::Center
;
126 myTextBlock11
->Text
= "StackPanel.Orientation = \"Horizontal\"";
127 TextBlock
^ myTextBlock12
= gcnew
TextBlock();
128 myTextBlock12
->HorizontalAlignment
= HorizontalAlignment::Center
;
129 myTextBlock12
->Text
= "Button.Margin = \"10,0,10,0\"";
130 myStackPanel2
->Children
->Add(myTextBlock7
);
131 myStackPanel2
->Children
->Add(myButton4
);
132 myStackPanel2
->Children
->Add(myButton5
);
133 myStackPanel2
->Children
->Add(myButton6
);
134 myStackPanel2
->Children
->Add(myTextBlock8
);
135 myStackPanel2
->Children
->Add(myTextBlock9
);
136 myStackPanel2
->Children
->Add(myTextBlock10
);
137 myStackPanel2
->Children
->Add(myTextBlock11
);
138 myStackPanel2
->Children
->Add(myTextBlock12
);
140 // Add the final child StackPanel.
141 StackPanel
^ myStackPanel3
= gcnew
StackPanel();
142 myStackPanel3
->HorizontalAlignment
= HorizontalAlignment::Left
;
143 myStackPanel3
->VerticalAlignment
= VerticalAlignment::Top
;
144 Grid::SetColumn(myStackPanel3
, 2);
145 Grid::SetRow(myStackPanel3
, 0);
146 TextBlock
^ myTextBlock13
= gcnew
TextBlock();
147 myTextBlock13
->FontSize
= 18;
148 myTextBlock13
->HorizontalAlignment
= HorizontalAlignment::Center
;
149 myTextBlock13
->Margin
= Thickness(0, 0, 0, 15);
150 myTextBlock13
->Text
= "StackPanel 3";
151 Button
^ myButton7
= gcnew
Button();
152 myButton7
->Margin
= Thickness(10);
153 myButton7
->Content
= "Button 7";
154 Button
^ myButton8
= gcnew
Button();
155 myButton8
->Margin
= Thickness(10);
156 myButton8
->Content
= "Button 8";
157 Button
^ myButton9
= gcnew
Button();
158 myButton9
->Margin
= Thickness(10);
159 myButton9
->Content
= "Button 9";
160 TextBlock
^ myTextBlock14
= gcnew
TextBlock();
161 myTextBlock14
->Text
= "ColumnDefinition.Width = \"Auto\"";
162 TextBlock
^ myTextBlock15
= gcnew
TextBlock();
163 myTextBlock15
->Text
= "StackPanel.HorizontalAlignment = \"Left\"";
164 TextBlock
^ myTextBlock16
= gcnew
TextBlock();
165 myTextBlock16
->Text
= "StackPanel.VerticalAlignment = \"Top\"";
166 TextBlock
^ myTextBlock17
= gcnew
TextBlock();
167 myTextBlock17
->Text
= "StackPanel.Orientation = \"Vertical\"";
168 TextBlock
^ myTextBlock18
= gcnew
TextBlock();
169 myTextBlock18
->Text
= "Button.Margin = \"10\"";
170 myStackPanel3
->Children
->Add(myTextBlock13
);
171 myStackPanel3
->Children
->Add(myButton7
);
172 myStackPanel3
->Children
->Add(myButton8
);
173 myStackPanel3
->Children
->Add(myButton9
);
174 myStackPanel3
->Children
->Add(myTextBlock14
);
175 myStackPanel3
->Children
->Add(myTextBlock15
);
176 myStackPanel3
->Children
->Add(myTextBlock16
);
177 myStackPanel3
->Children
->Add(myTextBlock17
);
178 myStackPanel3
->Children
->Add(myTextBlock18
);
180 // Add child content to the parent Grid.
181 myGrid
->Children
->Add(myStackPanel
);
182 myGrid
->Children
->Add(myStackPanel2
);
183 myGrid
->Children
->Add(myStackPanel3
);
185 // Add the Grid as the lone child of the Border.
186 myBorder
->Child
= myGrid
;
188 // Add the Border to the Window as Content and show the Window.
189 mainWindow
->Content
= myBorder
;
190 mainWindow
->Title
= "Margin, Padding, and Alignment Sample";
195 private ref
class EntryClass
{
198 [System::STAThread()]
201 Margin_Padding_Alignment_Sample::app
^ app
= gcnew
Margin_Padding_Alignment_Sample::app();
208 [System::STAThreadAttribute()]
211 return Margin_Padding_Alignment_Sample::EntryClass::Main();