我在堆栈面板中进行了xml解析并创建了复选框。如何在堆栈面板的子元素之间添加间距?它们似乎没有适当的间距堆叠在一起,我希望在后面的代码(.cs文件)中进行。
非常感谢。
编辑1: 抱歉忘了添加我的密码:
我的XAML:
<TabItem Header ="XML PARSING" Name="Tabitem5" Visibility="Visible">
<StackPanel Name="stack1" >
<Button Height="23" Name="XmlappendButton" Width="75" HorizontalAlignment="Right" Click="XmlappendButton_Click">Update</Button>
</StackPanel>
</TabItem>
我的代码背后:
private void xmlparsing()
{
XDocument xmlDoc = XDocument.Load(@"C:\Build.xml");
var abc = from target in xmlDoc.Descendants("target")
select (string)target.Attribute("if");
foreach(string target in abc)
{
if (target != null && !Dictionarycheck.ContainsKey(target))
{
System.Windows.Controls.CheckBox chk = new System.Windows.Controls.CheckBox();
chk.Name = target+"CheckBox";
chk.Content = target;
chk.Tag = target;
stack1.Children.Add(chk);
}
}
}
答案 0 :(得分:1)
为您正在创建的子元素提供边距
_chk.Margin = new Thickness(0,100,0,0);
但理想情况下,在XAML中会很好。将XML数据作为集合绑定到ListBox,并提供带有CheckBox的正确DataTemplate。正确的WPF方式如下。 XAML
<ListBox x:Name="lstBox">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding}" Tag="{Binding}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
背后的代码
XDocument xmlDoc = XDocument.Load(@"C:\Build.xml");
lstBox.ItemsSource = from target in xmlDoc.Descendants("target") select (string)target.Attribute("if");