窗口背景颜色:看起来比指定的暗

本文关键字:看起来 背景 颜色 窗口 | 更新日期: 2023-09-27 18:09:18

我正在尝试在WPF和表单的背景颜色中使用颜色。不做任何其他(没有代码背后,从另一个类派生,等),我创建了一个全新的默认Windows窗体。我把背景换成浅蓝色。保存表单。运行程序并打开该表单。表单会显示更深的颜色就好像它不尊重

的XAML
<Window x:Class="MyProjectNamespace.AnotherWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="AnotherWindow" Height="300" Width="300" Background="#4800A8A6">
    <Grid>
    </Grid>
</Window>

此外,如果我尝试使用相同的背景值#4800A8A6,并尝试创建一个画笔并执行BrushConverter。ConvertFrom("#4800A8A6");并运行表单,我仍然得到不正确的颜色显示通过设计师…是什么让…

窗口背景颜色:看起来比指定的暗

你的颜色代码的第一个字节,'48'是一个alpha值,所以你允许alpha混合在你的窗口(不是"Windows窗体"顺便说一句,这是一个不同的技术;),这意味着你的窗口的颜色将与它后面的东西的颜色混合。

尝试更改为:#FF00A8A6,看看是否会给你更好的结果

你的问题是在背景颜色中包含Alpha通道(即#AARRGGBB)。在设计器中,你可以看到背景是根据VS中的背景颜色合成的(在我的例子中是白色),这将使背景"变亮",与你单独运行时相比。

要自己看到这一点,尝试Background="#00A8A6",或者您可以尝试添加AllowsTransparency="True"(但这对WindowStyle.None有一个繁重的要求)。

这可能是因为你的颜色中的alpha成分。如果你想让你的窗口透明,你必须使用AllowsTransparency="True"。如果不这样做,WPF会将默认的windows背景色与您的windows背景色合并。