以下是我正在处理的xaml:
<TextBlock Text="{Binding Title}" Margin="10,0,0,0" VerticalAlignment="Center">
<TextBlock.Resources>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="Text" Value="">
<Setter Property="Margin" Value="0" />
</Trigger>
</Style.Triggers>
</Style>
</TextBlock.Resources>
</TextBlock>
当text =“”我想清理边距。但不知怎的,它不起作用。
答案 0 :(得分:3)
您必须将Margin="10,0,0,0"
从 TextBlock
移至Style
的设置者:
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Margin" Value="10,0,0,0" />
<Style.Triggers>
<Trigger Property="Text" Value="">
<Setter Property="Margin" Value="0" />
</Trigger>
</Style.Triggers>
</Style>
因为本地值在样式设置器和触发器上有 higher precedence
顺序:
物业系统强制。
动态动画或具有保留行为的动画。
3. Local value.
TemplatedParent模板属性。
隐含的风格。
6. Style triggers.
模板触发器。
8. Style setters.
...
有关详细信息,请参阅: