我有一个带有TextBlock的Windows 8.1应用程序。 我想根据应用程序所处的状态来控制TextBlock的样式。 1.啪的一声 2.全屏。
样式通过StaticResources加载。
这是我要在Snapped View
中加载的样式<Style x:Key="SnappedTextBlockStyle" TargetType="TextBlock">
<Setter Property="Foreground"
Value="Blue" />
<Setter Property="FontSize"
Value="10" />
<Setter Property="FontWeight"
Value="ExtraBlack" />
</Style>
这是我要在Fullscreen中加载的样式
<Style x:Key="FullscreenTextBlockStyle"
TargetType="TextBlock">
<Setter Property="Foreground"
Value="Red" />
<Setter Property="FontSize"
Value="30" />
<Setter Property="FontWeight"
Value="Black" />
</Style>
我将初始样式分配给TextBlock的方式是
<TextBlock Style="{StaticResource FullscreenTextBlockStyle}" />
我不想直接在TextBlock元素上修改各个属性。
我知道的一个解决方法是使用布尔变量IsSnapped并使用转换器加载不同的样式。
<TextBlock Style={Binding IsSnapped, Converter={StaticResource SnappedToStyleConverter}} />
但是,我不喜欢上述方法。因为我认为将所有与状态相关的代码放在Visual状态中,而不是从不同的地方处理它是个好主意。
如果有人能指出我正确的方向,我会很高兴。 在此先感谢。