思路是在控件尺寸发生变更的时候更新控件的样式。而能容易实现这个的只有 Trigger
和 Setter
那一套。直接在控件上使用的 Trigger
只能使用 EventTrigger
,因此我们需要编写能写更多种类 Trigger
的 Style
。
<Style x:Key="Style.Foo.WalterlvDemo">
<Setter Property="Grid.Row" Value="0" />
<Setter Property="Grid.Column" Value="0" />
<Style.Triggers>
<DataTrigger Value="True"
Binding="{Binding ActualHeight, ElementName=DemoWindow,
Converter={StaticResource GreaterOrEqualsConverter},
ConverterParameter=640}">
<Setter Property="Grid.Row" Value="1" />
<Setter Property="Grid.Column" Value="1" />
</DataTrigger>
</Style.Triggers>
</Style>