|
|
1
4
不幸的是,WPF中不支持自定义画笔(画笔类型标记为“Internal”,无法从继承),因此无法创建由两个画笔组成的混合画笔,该混合画笔可以像普通SolidColorBrush一样从XAML中使用。 作为解决方法,您可以使用markupextension来模拟自定义画笔的行为,这允许您使用XAML语法并提供自定义值,这允许我们使用内置的solidcolorbrush(不需要自定义画笔)设置为混合两种颜色时获得的值:
然后可以像使用普通画笔一样从XAML中使用它:
或者使用标记扩展语法:
这种方法的缺点是,不能使用DynamicResource或StaticResource引用将值绑定到应用程序中的其他资源。MarkupExtension不是DependencyObject,资源绑定只在DependencyObjects上工作;内置画笔是DependencyObjects,这就是绑定使用传统画笔的原因。 |
|
|
2
6
我也遇到了同样的问题。我通常只使用一个XAML,分别用于基本的暗色、基本的灯光,然后一个用于每个颜色的重音(蓝色、红色等)。强调是稍微看,这使它更暗时,然后选择较暗的主题与较暗的背景。 当用次要的强调色创建一个主题以在应用程序中具有更大的对比度时(例如,选择浅色主题时为灰色,选择深色主题时为强调色),我需要用两种颜色构建一个画笔,否则我将不得不为每种颜色创建一个深色和浅色主题。 我用的是:
切换主题时,“gray10”的alpha在00和ff之间切换,因此画笔显示灰色或强调色。 |
|
|
3
3
从前景和背景画笔中获取颜色,混合它们,然后根据生成的颜色创建一个新的画笔。 C中的例子:
|
|
|
4
3
一种简单的方法(但可能没有优化)。 创建一个 LinearGradientBrush 在两种颜色的重复模式中,端点等于起点:
这个给你一把橙色的刷子。 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |
|
|
Barta · WPF MVVM不更新视图 1 年前 |
|
|
Denis Ivanov · WPF控件在属性更改时不会更新 1 年前 |
|
|
codymanix · WPF:TextBlock周围可见小边框? 1 年前 |
|
|
Nostromo · 来自背景对象的工具提示 1 年前 |
|
|
Nuvolari · 从可观测集合添加/删除时出现对象处理异常 2 年前 |
|
|
CCarter · 只能在设计器中DependencyObject的DependencyProperty上设置显示“Binding”的WPF ICommand DependencyProperties[重复] 2 年前 |
|
|
Thern · 在UI线程(WPF)上的void方法中调用异步函数 2 年前 |