我在 Windows Phone 8.1(通用)中创建了应用程序。我需要创建按钮的动态字段。这是我的示例 xaml:
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid x:Name="_root"
Grid.Row="1"
Margin="10" />
这是我的代码:
_root.Children.Clear();
_root.ColumnDefinitions.Clear();
Size = 5;
for (int i = 0; i < Size; i++)
{
_root.ColumnDefinitions.Add(new ColumnDefinition
{
Width = new GridLength(1, GridUnitType.Star)
});
}
for (int column = 0; column < Size; column++)
{
Button btnTemp = new Button();
btnTemp.Visibility = Visibility.Visible;
btnTemp.VerticalAlignment = VerticalAlignment.Stretch;
btnTemp.HorizontalAlignment = HorizontalAlignment.Stretch;
btnTemp.HorizontalContentAlignment = HorizontalAlignment.Center;
btnTemp.VerticalContentAlignment = VerticalAlignment.Center;
btnTemp.BorderBrush = new SolidColorBrush(Colors.Blue);
btnTemp.Content = column;
Grid.SetColumn(btnTemp, column);
Grid.SetRow(btnTemp, 0);
_root.Children.Add(btnTemp);
}
这是我的结果:
如果我使用:
Width = new GridLength(1, GridUnitType.Auto)
我得到结果:
我需要修复这些错误:
1.将文本对齐到按钮的中心。
- 看不到按钮“4”的右边框。其他广泛的按钮“4”。
最佳答案
修复您的情况非常简单 - 只需将创建的按钮的 MinWidth 定义为 0
(默认值有一些值)。
btnTemp.MinWidth = 0;
我认为它应该有所帮助。
不过,在你的情况下,我不会向网格添加按钮,我可能会定义 ItemsPanel 和合适的 ItemsTemplate 和 Button,然后绑定(bind)到集合。
关于c# - 在 Windows Phone 8.1 中动态创建按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33705631/