You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Microsoft.UI.Xaml.Controls时设置强调色不生效如何解决

正确修改UNO Platform应用强调色的方法

你的配置不生效的核心原因是自定义资源的加载顺序不对,XAML资源遵循后加载覆盖先加载的规则,你写在MergedDictionaries节点外的自定义资源,会被后续加载的XamlControlsResources默认资源覆盖,所以没有效果。
按以下步骤修改即可:

1. 调整资源加载顺序,补全强调色相关资源

修改App.xaml中的资源配置如下:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"  />
            <!-- 自定义资源必须放在XamlControlsResources之后才能覆盖默认值 -->
            <ResourceDictionary>
                <Color x:Key="SystemAccentColor">#E64A19</Color>
                <Color x:Key="SystemColorHighlightColor">#E64A19</Color>
                <SolidColorBrush x:Key="SystemColorControlAccentBrush" Color="{StaticResource SystemAccentColor}" />
                <!-- 补充不同透明度的强调色变体,覆盖所有控件的强调色调用 -->
                <Color x:Key="SystemAccentColorLight1">#FFE85A2C</Color>
                <Color x:Key="SystemAccentColorLight2">#FFEB6A40</Color>
                <Color x:Key="SystemAccentColorLight3">#FFEE7B54</Color>
                <Color x:Key="SystemAccentColorDark1">#FFCF4217</Color>
                <Color x:Key="SystemAccentColorDark2">#FFB83B14</Color>
                <Color x:Key="SystemAccentColorDark3">#FFA13412</Color>
            </ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

2. 跨平台适配(可选)

如果你的应用要部署到iOS或者macOS平台,需要额外关闭系统强调色同步,在对应平台的入口代码AppDelegate.cs的FinishedLaunching方法中添加以下代码即可:

Uno.UI.FeatureConfiguration.Style.UseSystemAccentColor = false;

修改完成后重新编译运行,所有控件的强调色就会替换为你设置的橙红色。

内容的提问来源于stack exchange,提问作者richej

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:36:00