告诉我如何向 StackPanel 元素的 Grid 添加按钮。我的代码:
<StackPanel Grid.Row="2" Width="350" Height="50" Name="ButtonsPanel" Background="#99000000" Orientation="Horizontal" SnapsToDevicePixels="True">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="350" />
</Grid.ColumnDefinitions>
<!-- Put buttons here. -->
</Grid>
</StackPanel>
如果我将按钮静态分配给 StackPanel,那么一切正常。按钮接受HorizontalAlignment和Margin。但是按钮的数量是根据条件确定的,静态选项不再适用。如果我以编程方式添加它们,则不会显示按钮。如果我从 StackPanel 中删除 Grid 网格,则按钮都沿左边缘聚集在一个堆中。
我这样添加:
var button = new Button
{
Name = "testButton",
Content = "Test 1",
Width = 80,
Margin = new Thickness(0, 10, 0, 0),
Style = (Style) Application.Current.FindResource("Flat"),
VerticalAlignment = VerticalAlignment.Top,
HorizontalAlignment = HorizontalAlignment.Center,
};
this.ButtonsPanel.Children.Add(button);
当然,有不同数量的按钮,HorizontalAlignment和Margin参数会根据按钮的数量而变化。
结果很简单。只需为 Grid 指定 x.Name 并引用它,而不是 StackPanel。我在MSDN上找到了仅用英文描述的问题。
现在代码如下所示:
和添加代码:
也许有人会派上用场。