问题标签 [solidcolorbrush]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何从第三方 SolidColorBrush 资源中提取颜色
我有一个由第 3 方定义的名为“资源”的 DynamicResource。它引用了一个 SolidColorBrush 并且它的颜色会根据某些事情发生变化。
我需要创建一个以“资源”的当前颜色开头的颜色动画,但我不知道如何从 xaml 中的资源中提取颜色并在 ColorAnimation 中使用它。
如果不使用后面的代码,这是否可能?
c# - 在 wpf 中将 System.Windows.Media.SolidColorBrush 转换为 Excel.Range.Interior.Color
我想在 wpf 中将 System.Windows.Media.SolidColorBrush 转换为 Excel.Range.Interior.Color。我怎样才能做到这一点?
c# - 为什么 Canvas 的 Background 属性是通用的“SolidColorBrush”而不是实际颜色?
我想响应画布上的点击并将画布背景的值存储在应用程序设置中,以便我可以将该值分配给 AppBar / 命令栏。所以我在用户控件中有这个 XAML:
..处理程序是:
然而,brushColorAsStr 的值只是“Windows.UI.XAML.Media.SolidColorBrush”(我希望它类似于“Magenta”或“Windows.UI.XAML.Media.SolidColorBrush.Magenta”)
如何获得背景的实际值而不仅仅是它的类型?
更新
我不明白如何实现 SLaks 的答案;我试过了:
c# - 如何在 C# 中将字符串转换为 SolidColorBrush?
我正在尝试在 C# 中将a 转换string
为 a 。SolidColorBrush
我正在使用的代码是:
其中 sLine 是从文本文件中读取的字符串。例如,sLine
可能是“黑色”。
这段代码给了我一个FormatException
.
c# - SolidBrush.Clone 抛出异常
我正在使用不同类型的画笔,如SolidBrush
、HatchBrush
等,在我的 Windows 窗体控件中绘制复杂的形状和文本。我正在使用的代码是,
有时,线路myBrush.Clone()
抛出ArgumentException
. 我在 MSDN 链接中搜索了 SolidBrush.Clone() 方法,但没有关于任何异常
SolidBrush.Clone的信息
所以,我在下面的 SolidBrush 类参考代码链接中检查了这个方法的源代码
方法中使用的代码System.Drawing.SolidBrush.Clone
是
很明显,该Clone
方法可能会抛出异常,但我无法确定它何时或为什么会抛出异常,因为这段代码不是我的。
有谁知道这种方法何时或为什么会抛出异常?
编辑:
附上显示异常详细信息的图像
另外,这不是系统刷,因为immutable
刷的属性是false
wpf - 来自现有颜色的新颜色,在 xaml 中进行重命名/复制/别名
我正在尝试遵循 XAML 中的 Don't Repeat Yourself 原则,但我已经到了苦苦挣扎的地步。
我正在为蒙皮定义颜色。假设我已经定义了我想要作为皮肤基础的颜色:
现在说我想使用颜色 B 作为我的边框颜色,我会为我的文本框、按钮等设置 BorderBrush 的样式:
现在假设我想使用较暗的色调 B-,因此我宁愿使用 B 中的另一种名为“占位符”的颜色,而不是(记住)更改所有控件的资源,所以我只必须更改一次:
我不知道如何做到这一点。在 XAML 中是否存在定义“常量”的通用“模式”或方式?
解决方法
不可能按照我想要的方式,请参阅答案。
简短的解决方法(感谢@dotsven 处理亮度的巧妙技巧):将所有颜色定义为画笔,并使用标记扩展来检索Color
属性。
AFAIKColor
不支持它的内容分配,因此如果不单独对 A、R、G、B 等属性进行操作,XAML 就没有简单的方法来定义或绑定它。笔刷在这里起到了包装的作用,因此我们可以绑定到颜色。
将所有颜色定义为Brush
es
创建一个 MarkupExtension 以Color
从以下位置检索SolidColorBrush
:
然后通过亮度偏移创建我的蒙皮颜色,如下所示:
当控件需要画笔时,例如Background
,只需绑定到{StaticResource controlBackground}
。
如果您必须绑定到需要 a 的东西Color
,请绑定到{ext:SkinColor BaseColor={StaticResource controlBackground}}
以从画笔中检索它。
c# - WPF SolidColorBrush 颜色叠加(混合颜色)
我试图找到一种简单的方法来通过添加透明覆盖颜色来更改现有 SolidColorBrush 的颜色。这可能没有
- 使用着色器效果,或
- 使用覆盖颜色将重复控件放在顶部?
有人告诉我,这必须在 Windows 上是可能的。Web 开发人员一直在使用这种技术,这就是他们与设计师交流的方式。他们有几个设计的关键颜色,他们没有明确定义每个关键颜色的阴影——而是说“添加 10% 的黑色”。我知道这可以在 CSS 中轻松完成,您不必担心确切的 RGB 值,您所需要定义的只是与 10% 透明黑色混合。我正在为 WPF 寻找类似的东西,在那里我可以轻松地修改我现有的颜色,而无需太多额外的麻烦(例如,使画笔变暗 10%,就好像它上面有一个 10% 的黑色对象一样。)
我不是在寻找叠加层的数学计算,我知道这是可以做到的。我正在寻找一种在 WPF 中实现此目的的简单方法 - 类似于 CSS,您可以在其中简单地定义叠加颜色以进行混合。我想知道这是否可能 - 在 WPF 中。
c# - 如何在c#中更改笔的颜色?
我正在尝试更改钢笔和实心画笔的颜色。
我对它们进行了硬编码,但现在我想知道如何只制作一支笔并使用 GUI(下拉列表、调色板等)将颜色更改为我想要的任何颜色。
这是我的编码:
c# - 尝试将 SolidColorBrush 资源应用于 HeaderedContentControl BorderBrush
我想将我的窗口中的 SolidColorBrush 链接到我的字典中的另一个 SolidColorBrush。我没有找到这样的东西,可能是不可能的......
这是我的“ResourceDictionary.xaml”中的代码
在我的窗口中,我想要一个指向此资源的链接,如下所示:
目前,此代码不起作用...
我想使用这个链接,因为我想在我的页面中以多个“”使用这个资源,如果将来必须改变颜色,用这种方式很容易改变。
Brush 资源的使用方式如下: