首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c# wpf SystemColors不能正常工作

c# wpf SystemColors不能正常工作
EN

Stack Overflow用户
提问于 2014-09-26 17:38:08
回答 2查看 779关注 0票数 1

我试着用系统颜色给我的窗口上色,但是当我这样做的时候:

代码语言:javascript
复制
<Menu
    Width="Auto"
    Height="20"
    Background="{DynamicResource {x:Static SystemColors.MenuBarColor}}"/>

我得到了一个8位的十六进制数。我的程序只接受3或6个数字的颜色。执行程序总是会给出一个错误消息

代码语言:javascript
复制
System.Windows.Markup.XamlParseException: Zeilennummer "11" und Zeilenposition "4" 
von "Beim Festlegen der Eigenschaft" System.Windows.Controls.Panel.Background 
"wurde eine Ausnahme ausgelöst.". ---> System.ArgumentException: "#FFF0F0F0" ist 
kein gültiger Wert für die Eigenschaft "Background".

如果我使用"MenuBarColorKey“,这也不会被接受为有效值。但文本显示为“"MenuBarColorKey”不是有效值....“

我怎样才能纠正这个错误呢?

谢谢你的帮忙

迈克尔

编辑:@AwkwardCoder

对不起,阅读已经有几年了,我刚开始在stackoverflow中写作,所以我不能评论或投票。

你是正确的。使用笔刷时,它可以正常工作。非常感谢!

但是我引用了来自Zack Peterson的实用程序的名称,如

"wpf -如何使用正确的Windows系统颜色?“

在那里我没有找到扩展名"Brush“。这个实用程序对我很有效。

EN

回答 2

Stack Overflow用户

发布于 2014-09-26 17:56:41

这里有两个问题。首先,您希望对Brush属性使用Color,其次,您尝试使用Color作为资源键。

如果要将其用作资源,则需要使用SystemColors.MenuBarBrushKey

代码语言:javascript
复制
Background="{DynamicResource {x:Static SystemColors.MenuBarBrushKey}}"

或者,您可以直接使用它,然后使用SystemColors.MenuBarBrush

代码语言:javascript
复制
Background="{x:Static SystemColors.MenuBarBrush}"

您会发现SystemColors为每种颜色提供了4个静态属性

  • XxxxColor为您提供类结构
  • XxxxColorKey为您提供类structure
  • XxxxBrush为您提供类class
  • XxxxBrushKey为您提供ResourceKey to SolidColorBrush
票数 4
EN

Stack Overflow用户

发布于 2014-09-26 17:47:43

根据MSDN page,没有MenuBarColor,只有MenuBarBrush

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26056479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档