我正在尝试使用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”); 然后运行表单,我仍然得到设计师显示的不正确的颜色......什么给...
答案 0 :(得分:5)
你的颜色代码的第一个字节,'48'是一个alpha值,所以你允许在你的Window上进行alpha混合(不是“Windows Form”btw,这是一种不同的技术;)),这意味着窗口的颜色将与其背后的颜色混合在一起。
尝试更改为:#FF00A8A6
,看看是否能为您提供更好的结果。
答案 1 :(得分:3)
您的问题是包含Alpha channel in the background color(即#AARRGGBB
)。在设计师中,你会看到背景是针对VS中的背景颜色(在我的情况下为白色)中进行合成,与单独运行背景颜色相比,它会“减轻”背景。
要亲眼看到这一点,请尝试Background="#00A8A6"
,或者您可以尝试添加AllowsTransparency="True"
(但这有一个onerous requirement of WindowStyle.None
)。
答案 2 :(得分:2)
这可能是因为你的颜色中的alpha分量。如果您尝试使窗户透明,则必须使用AllowsTransparency="True"
。如果不这样做,WPF会将默认的窗口背景颜色与您的Windows背景合并。