在堆栈元素代码后面添加间距

时间:2011-03-14 03:42:53

标签: wpf stackpanel

我在堆栈面板中进行了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);
        }
    }       
}

1 个答案:

答案 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");