我在我的grid
上动态创建CheckBoxes
。现在我也想动态设置margin
(尊重CheckBox
),但不确定最好的方法是什么。如何在Silverlight中动态设置CheckBox边距
例如,
- 如果只有一个
CheckBox
那么margin
应{5,0,0,0}
- 如果有
CheckBoxes
则第一应具有{5,0,0,0}
和第二应具有{10,0,0,0}
等上。 我担心左边缘。这些复选框创建基于List<String>
。
XAML:
<Grid x:Name="SynonymsGrid" Grid.Column="2" Margin="0,35,0,0" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
</Grid>
后台代码:
List<String> names = new List<string>() { "one", "two", "three" };
foreach (var name in names)
{
CheckBox chb = new CheckBox();
chb.Content = name;
chb.Margin = new System.Windows.Thickness { Left = 5, Top = 0, Right = 0, Bottom = 0 };
synonymsGrid.Children.Add(chb);
}
上面的代码将设置所有复选框在一个位置这是显而易见的。我想过使用for loop
,但不知道什么是最好的方法。
解决方案:
for (int i = 0; i < names.Count; i++)
{
CheckBox chb = new CheckBox();
chb.Content = names[i];
chb.Margin = new System.Windows.Thickness { Left = i * 150, Top = 0, Right = 0, Bottom = 0 };
synonymsGrid.Children.Add(chb);
}
我找到了解决方案并更新了答案。感谢您的期待。 – CSharper
@OmegaMan感谢您的编辑。下次我会记住这些事情。 – CSharper