2

我目前正在尝试覆盖 WPF 系统颜色。从这里我发现这可以通过创建一个新的 SolidColorBrush 资源来完成,例如x:Key="{x:Static SystemColors.WindowBrushKey}"更改窗口背景颜色的键。

这已经有效,但是 Visual Studio WPF 设计器不会将新颜色显示为窗口的背景。

从一个干净的 WPF 应用程序开始,这就是我的 XAML 代码在 MainWindow 中的样子:

<Window x:Class="TestOverwriteSystemColor.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:TestOverwriteSystemColor"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.WindowBrushKey}" Color="Orange" />
    </Window.Resources>
    <Grid>

    </Grid>
</Window>

在 Visual Studio 设计器中,这看起来像这样:

Visual Studio WPF 设计器视图

如果我运行它,这就是生成的应用程序:

在此处输入图像描述

SolidColorBrushResource 添加到 App.xaml 资源也不会改变这一点。我错过了什么新定义的 SystemColor 也在设计器中使用?

4

1 回答 1

0

正如 Otiel 提到的,这可能是 Visual Studio 中的一个错误,所以我在 Microsoft 开始了一个问题报告。目前正在考虑中:https ://developercommunity.visualstudio.com/content/problem/633508/overwriting-resource-windowbrushkey-does-not-have.html

于 2019-07-11T07:25:21.997 回答