2010-03-27 77 views
1

如何在Silverlight中更改DataForm中字段之间的间距?如何更改DataForm中字段之间的间距?

我试过编辑模板,但找不到我需要的东西。 我认为我需要做的就是改变DataField风格的MinHeightMargin,但这似乎没有做到。

<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 2010-03-27 04:34:47

+0

好想法 - 一分钟乐观,但它似乎并没有这样做 – 2010-03-27 05:13:29

回答

2

改变样式的边距的确改变了间距。

我会猜测你在资源中有上述样式,并期待它隐式应用于所有DataField实例。 Silverlight 3不支持隐式样式(该工具包有一些附加的属性,可以提供一些隐式样式的semblence)。

您需要从数据形引用此风格: -

<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本身就行了。谢谢! – 2010-03-28 01:57:02

+0

结果!好东西 - 正是我所期待的。 – 2011-10-21 13:48:33

相关问题