【问题标题】:Window background color: appears darker than specified?窗口背景颜色:看起来比指定的暗?
【发布时间】:2011-11-23 02:09:29
【问题描述】:

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

【问题讨论】:

  • 更改显示器的倾斜度:P
  • @the_ajp...可爱...或者我妻子可能会说...你的眼镜干净吗?但它们仅用于阅读 10 英寸内的内容,而我的显示器距离 2 英尺以上...... :)

标签: c# wpf xaml background brushes


【解决方案1】:

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

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

【讨论】:

  • 您的答案实际上更完整,因为明确包含 alpha“FF”值前缀以防止任何“出血”并考虑第 4 个可能的十六进制颜色值。我会在发布时间后 5 分钟后检查。
  • @DRapp:避免完全指定 alpha 通道,而是使用 Brush.Opacity 依赖属性。这样,当您需要透明度时,它会更加明确(避免将来出现类似您自己的问题)。
【解决方案2】:

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

要亲自查看,请尝试Background="#00A8A6",或者您可以尝试添加AllowsTransparency="True"(但这里有onerous requirement of WindowStyle.None)。

【讨论】:

  • 我会考虑您对不透明度的建议。感谢您阐明您的解决方案如何也适用于我。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-03
    • 2012-02-15
    • 1970-01-01
    • 2012-02-05
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多