Как изменить расстояние между полями в DataForm? - PullRequest
1 голос
/ 27 марта 2010

Как изменить интервал между полями в DataForm в Silverlight?

Я пытался редактировать шаблон, но не могу найти то, что мне нужно. Я думал, что все, что мне нужно было сделать, это изменить MinHeight и Margin стиля DataField, но, похоже, это не делает.

<Style TargetType="dataFormToolkit:DataField">
        <Setter Property="IsTabStop" Value="False"/>
        <Setter Property="Margin" Value="2"/>
        <Setter Property="MinHeight" Value="5"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="dataFormToolkit:DataField">
                    <ContentControl x:Name="ContentControl" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="Stretch" IsTabStop="False" VerticalAlignment="Center"/>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Я нашел несколько статей о стилизации DataForm, но многие из них, похоже, устарели. Я не вижу ничего в полном извлеченном шаблоне в Blend, который соответствует интервалу.

1 Ответ

2 голосов
/ 27 марта 2010

Правильное изменение поля для стиля меняет интервал.

Я предполагаю, что у вас есть вышеуказанный стиль в ресурсе, и вы ожидаете, что он будет применяться неявно ко всем DataField экземплярам. Silverlight 3 не поддерживает неявные стили (в инструментарии есть некоторые вложенные свойства, которые могут обеспечить некоторую однородность неявных стилей).

Вам нужно сослаться на этот стиль из DataForm: -

<Grid.Resources>
  <Style x:Key="DataFieldStyle" TargetType="dataFormToolkit:DataField">
    <Setter Property="Margin" Value="2"/>
    <Setter Property="MinHeight" Value="5"/>
  </Style>
</Grid.Resources>
<DataForm DataFieldStyle="{StaticResource DataFieldStyle}" />
...