c# - 在 Windows Phone 8.1 中动态创建按钮

标签 c# xaml windows-8.1 winrt-xaml win-universal-app

我在 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);    
                }

这是我的结果:

enter image description here

如果我使用:

  Width = new GridLength(1, GridUnitType.Auto)

我得到结果:

enter image description here

我需要修复这些错误:

1.将文本对齐到按钮的中心。

  1. 看不到按钮“4”的右边框。其他广泛的按钮“4”。

最佳答案

修复您的情况非常简单 - 只需将创建的按钮的 MinWidth 定义为 0(默认值有一些值)。

btnTemp.MinWidth = 0;

我认为它应该有所帮助。

不过,在你的情况下,我不会向网格添加按钮,我可能会定义 ItemsPanel 和合适的 ItemsTemplateButton,然后绑定(bind)到集合。

关于c# - 在 Windows Phone 8.1 中动态创建按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33705631/

相关文章:

c# - 如何使音频文件自身重叠?

windows-store-apps - 在 Windows 8.1 GridView 中设置组边距

javascript - Windows 8 商店应用程序无需特殊 UI 即可捕获视频/照片

c# - AutoMapper 与 ValueInjecter

c# - RSACryptoServiceProvider 不产生一致的输出

c# - .NET 中数组的泛型函数

C# 混淆和 XAML

c# - .Net Framework 您必须添加对程序集 mscorlib 的引用,Version=4.0.0.0

c# - 如何设置控件x :Uid attribute programmatically for a metro app control?

c# - 获取数据网格以使用反射创建具有未知类型的列