wpf - 组合纯色画笔

标签 wpf brush

有没有办法创建一种混合了 2 个纯色画笔的“纯色画笔”?

对于背景颜色,我希望能够对其他画笔使用 DynamicReference。而另一种颜色(在前面)可能是具有不透明度的静态颜色。

如果这真的没有道理,请随时要求澄清!

最佳答案

我遇到了同样的问题。我通常只为基本的深色、基本的灯光使用一个 xaml,然后为每种颜色重音(蓝色、红色等)使用一个 xaml。 The accent is slightly lookthrough which makes it darker when then darker theme is selected with a darker background.

在创建具有辅助强调色的主题以在应用程序中具有更多对比度时(例如,选择浅色主题时为灰色,选择深色主题时为强调色),我需要用两种颜色构建画笔,否则我必须创建每种颜色的深色和浅色主题。

这是我使用的:

<DrawingBrush x:Key="SecondaryAccentColorBrush" Viewport="0,0,1,1" TileMode="Tile">
    <DrawingBrush.Drawing>
        <DrawingGroup>
            <GeometryDrawing>
                <GeometryDrawing.Geometry>
                    <RectangleGeometry Rect="0,0,1,1" />
                </GeometryDrawing.Geometry>
                <GeometryDrawing.Brush>
                    <SolidColorBrush Color="{DynamicResource AccentColor}"/>
                </GeometryDrawing.Brush>
            </GeometryDrawing>
            <GeometryDrawing>
                <GeometryDrawing.Geometry>
                    <RectangleGeometry Rect="0,0,1,1" />
                </GeometryDrawing.Geometry>
                <GeometryDrawing.Brush>
                    <SolidColorBrush Color="{DynamicResource Gray10}"/>
                </GeometryDrawing.Brush>
            </GeometryDrawing>
        </DrawingGroup>
    </DrawingBrush.Drawing>
</DrawingBrush>

切换主题时,“Gray10”的 alpha 在 00 和 FF 之间切换,因此画笔显示灰色或强调色。

关于wpf - 组合纯色画笔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/906045/

相关文章:

javascript - 使用时间刻度时如何在d3 js中设置笔刷范围?

c# - 从 WPF ColorPicker 到矩形画笔的颜色?

WPF 布局,我可以清理它吗?

c# - Microsoft Edge WebView2 - 错误 : The type or namespace name 'Web' does not exist in the namespace 'Microsoft'

c# - WPF 全局异常处理程序

c# - 画笔算法/颜色褪色模式 - 需要建议

c# - 如何从字符串设置 Border.BorderBrush

c# - 缺少 System.Windows.Freezable

wpf - 在不使用 anchor 的情况下通过一条线连接两个 WPF Canvas 元素?

Wpf面板背景问题