2015-11-14 93 views
4

我的Windows Phone创建应用程序8.1(通用)。我需要创建一个动态的按钮字段。这是我的例子XAML:Windows Phone中动态创建按钮8.1

<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.Align文本按钮的中心。

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

尝试使电网作为汽车的宽度......和你为什么不一个文本框添加到中心动态...这将是您更容易。 – kirushan

+0

我试图使用网格列宽度为自动。第二张照片的结果。 “动态添加文本框” - 好主意。 – FetFrumos

回答

3

修复你的情况是很容易 - 只需定义创建的按钮的MinWidth0(默认有一定的价值)。

btnTemp.MinWidth = 0; 

我认为这应该有所帮助。

尽管如此,你的情况我也不会按钮添加到网格,我可能会定义ItemsPanel,适合ItemsTemplate按钮,然后绑定到一个集合。

+0

这是工作。谢谢。 – FetFrumos