Установка поля в XAML для динамически создаваемых элементов управления WPF - PullRequest
0 голосов
/ 31 мая 2011

У меня есть WPF, который динамически создает кнопки при загрузке формы и добавляет их в StackPanel, объявленную в XAML. Я хотел бы полностью определить стиль для этих кнопок в XAML внутри StackPanel.Resources. До сих пор я в состоянии сделать это для свойств стиля просто отлично, но то, что я испытываю затруднения при выяснении, является лучшим способом сделать маржу. Я знаю, что Margin является толщиной и не может быть применен в стиле, но должен быть определен как статический ресурс и применен непосредственно к свойству Margin. Есть ли способ сделать это в XAML, не прибегая к коду?

Вот XAML для моей StackPanel:

        <StackPanel
            x:Name="_dialogButtons"
            Orientation="Horizontal"
            HorizontalAlignment="Right"
            DockPanel.Dock="Right">

            <StackPanel.Resources>
                <Style
                    TargetType="{x:Type Button}">
                    <Setter
                        Property="MinWidth"
                        Value="75" />
                    <Setter
                        Property="Padding"
                        Value="3" />
                </Style>                    
            </StackPanel.Resources>

        </StackPanel>

Спасибо

Mike

Ответы [ 3 ]

4 голосов
/ 31 мая 2011

Вы заявляете, что «Я знаю, что Маржа - это Толщина и на самом деле не может быть применена в стиле» , это не правильно.Поля могут применяться в XAML, тип Thickness имеет преобразователь типов, который может преобразовать строку в Thickness, что позволяет определить ее следующим образом:

<setter Property="Margin" Value="5,5,5,5"/>
4 голосов
/ 31 мая 2011
<StackPanel.Resources>
    <Style
        TargetType="{x:Type Button}">
        <Setter
            Property="MinWidth"
            Value="75" />
        <Setter
            Property="Padding"
            Value="3" />
        <Setter
            Property="Margin"
            Value="3" />
    </Style>                    
</StackPanel.Resources>
2 голосов
/ 31 мая 2011

Padding также Thickness, и, кажется, вы могли бы добавить это просто отлично;).

Так что просто сделайте это так же, как Padding.

...