如何在Windows 8.1应用程序中使用Visual States更改样式的StaticResource

时间:2014-10-21 07:12:25

标签: c# wpf xaml winrt-xaml windows-8.1

我有一个带有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状态中,而不是从不同的地方处理它是个好主意。

如果有人能指出我正确的方向,我会很高兴。 在此先感谢。

0 个答案:

没有答案