VisualState Setter 是否可以针对同一类型的所有 XAML 控件?

Can VisualState Setter target all XAML controls of the same type?

在 Windows 10 UWP 应用程序中,VisualState Setter 的 Target 值是否可以等于 XAML 控件类型?例如,您是否可以这样做来定位页面上的所有 TextBlock 字体大小(有点像 CSS 在 HTML 标签上应用样式的方式)

<VisualState.Setters>
<Setter Target="TextBlock.FontSize" Value="{StaticResource SmallScreenFontSize}"/>
</VisualState.Setters>

如果不是,是否有更好的方法来完成将 属性 设置为相同控件的组,而不是为页面上的每个控件分配一个唯一的名称 - 如果页面上有很多控件,这会很乏味.

我应该为文本块创建一个用户控件并将视觉状态应用到用户控件吗?

我不知道这样做的任何选项 - 几个月前我有同样的问题但不幸的是现在没有这样的选项来为 Setter 设置目标 XAML 控件。

正如 BoltClock 提到的,最好的方法之一是将控件模板另存为新样式,然后在此模板中插入视觉状态。

您可以在下面找到如何创建控制模板:

https://msdn.microsoft.com/en-us/library/cc189093(VS.95).aspx

使用上面的示例,您可以只定义具有所需行为但具有自定义样式的特定控件。