2010-03-27 1 views
1

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

Я пробовал редактировать шаблон, но не могу найти то, что мне нужно. Я думал, что все, что мне нужно было, это изменить 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, который соответствует интервалу.

+0

Пробовали ли вы положить 'свойство Margin' на' ContentControl' элементе? – Gabe

+0

хорошая мысль - оптимистично за минуту, но, похоже, это не так –

ответ

2

Смена границы по стилю изменяет интервал.

Я собираюсь угадать, что у вас есть вышеупомянутый стиль в ресурсе, и ожидаем, что он будет применяться неявно ко всем 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}" /> 
+0

Я действительно использую Silverlight 4, который неявно применяет стили. Главное здесь - применить стиль DataField к самому DataForm. Даже если вы примените его к каждому DataField в форме, он не вступает в силу. Как только я назначил его самому DataForm, он сработал. Благодаря! –

+0

результат! хороший материал - именно то, что я искал. –