3

我正在尝试使用 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"); 并运行表格,我仍然得到设计师显示的不正确的颜色......什么给了......

4

3 回答 3

5

颜色代码的第一个字节“48”是一个 alpha 值,因此您允许在 Window 上进行 alpha 混合(不是“Windows 窗体”顺便说一句,这是一种不同的技术;)),这意味着您的颜色窗户将与它后面的东西的颜色混合。

尝试更改为: #FF00A8A6,看看这是否会给您带来更好的结果。

于 2011-09-22T18:25:34.583 回答
3

您的问题是在背景颜色(即#AARRGGBB)中包含Alpha 通道。在设计器中,您会看到背景与 VS 中的任何背景颜色(在我的情况下为白色)合成,与独立运行时相比,这将“减轻”背景。

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

于 2011-09-22T18:26:00.310 回答
2

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

于 2011-09-22T18:28:12.093 回答