XAML 如何在MAUI中删除控件的粗焦点边框?

a2mppw5e  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(230)

我使用Visual Studio生成的默认MAUI应用程序作为起点。我为VisualState Focused添加了自定义焦点边框,当使用鼠标聚焦时,它工作正常。但是,当使用Tab键导航窗体时,默认的黑色边框出现在聚焦的按钮周围。

一些WinUI文章建议使用UseSystemFocusVisuals。因此,我在Windows文件夹中的App.xaml中做了以下操作:

<maui:MauiWinUIApplication.Resources>
    <x:Boolean x:Key="UseSystemFocusVisuals">False</x:Boolean>
    <Thickness x:Key="TextControlBorderThemeThickness">0</Thickness>
    <Thickness x:Key="TextControlBorderThemeThicknessFocused">0</Thickness>
</maui:MauiWinUIApplication.Resources>

不幸的是,它在Button控件上不起作用。但是,至少TextControl设置在Entry元素上起作用。所以,一般来说,资源部分是被应用的,只是UseSystemFocusVisuals似乎对Button控件没有作用。复选框和单选框有同样的问题。
如何在不扩展所有控件的情况下全局删除这些控件?

8qgya5xd

8qgya5xd1#

经过一番挖掘和试验,我找到了一个变通办法:

<Style TargetType="Button">
        <Setter Property="UseSystemFocusVisuals" Value="False"/>
    </Style>

    <Style TargetType="CheckBox">
        <Setter Property="UseSystemFocusVisuals" Value="False"/>
    </Style>

    <Style TargetType="RadioButton">
        <Setter Property="UseSystemFocusVisuals" Value="False"/>
    </Style>

因此,全局UseSystemFocusVisuals不起作用,但当我将其分别添加到每个控件样式时,它开始起作用。

相关问题