Xaml 在UWP中调整应用程序级别的焦点视觉属性

Xaml 在UWP中调整应用程序级别的焦点视觉属性,xaml,uwp,win-universal-app,uwp-xaml,Xaml,Uwp,Win Universal App,Uwp Xaml,我想在应用程序级别更改焦点视觉属性(如邮件应用程序)。 根据,可以通过更改相应的系统笔刷资源在应用程序级别更改主边框和次边框颜色 焦点视觉只有两个颜色属性:主颜色 边框颜色和次边框颜色。这些聚焦于视觉 可以在页面级别上更改每个控件的边框颜色,以及 在应用程序范围内的全局级别: 要在应用程序范围内推广聚焦视觉效果,请覆盖系统笔刷: <SolidColorBrush x:Key="SystemControlFocusVisualPrimaryBrush" Color="DarkRed"/&g

我想在应用程序级别更改焦点视觉属性(如邮件应用程序)。 根据,可以通过更改相应的系统笔刷资源在应用程序级别更改主边框和次边框颜色

焦点视觉只有两个颜色属性:主颜色 边框颜色和次边框颜色。这些聚焦于视觉 可以在页面级别上更改每个控件的边框颜色,以及 在应用程序范围内的全局级别:

要在应用程序范围内推广聚焦视觉效果,请覆盖系统笔刷:

 <SolidColorBrush x:Key="SystemControlFocusVisualPrimaryBrush" Color="DarkRed"/>
 <SolidColorBrush x:Key="SystemControlFocusVisualSecondaryBrush" Color="Pink"/>


但是文档中没有提供关于视觉焦点厚度的内容。是否有任何可用的资源或任何其他方式来指定应用程序级别的厚度?

不幸的是,没有用于主要和次要系统焦点视觉效果的此类资源。但是,假设您正在为控件使用默认样式,您可以尝试定义一个基本样式,然后让所有需要焦点视觉的控件从中继承

您甚至可以在基本样式中定义颜色和边距,这样您就有了一个集中的位置来管理所有全局焦点样式

<Style x:Name="DefaultFrameworkElementStyle" TargetType="FrameworkElement">
    <Setter Property="FocusVisualPrimaryThickness" Value="4" />
    <Setter Property="FocusVisualSecondaryThickness" Value="2" />
    <Setter Property="FocusVisualPrimaryBrush" Value="DarkRed" />
    <Setter Property="FocusVisualSecondaryBrush" Value="Red" />
   <Setter Property="FocusVisualMargin" Value="2" />
</Style>

<Style TargetType="Button" BasedOn="{StaticResource DefaultFrameworkElementStyle}" />
<Style TargetType="ListViewItem" BasedOn="{StaticResource DefaultFrameworkElementStyle}" />

看来这是唯一的办法,遗憾的是两年后的微软。