добавить интервал между кодом элемента стека позади - PullRequest
0 голосов
/ 14 марта 2011

Я сделал анализ 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 Ответ

1 голос
/ 14 марта 2011

Укажите поля для дочерних элементов, которые вы создаете

_chk.Margin = new Thickness(0,100,0,0); 

Но в идеале это будет хорошо в XAML.Свяжите свои XML-данные как коллекцию с ListBox и предоставьте правильный DataTemplate с CheckBox в нем.Правильный способ сделать это в 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");
...