gpt4 book ai didi

.net - 如何在 WPF 中实现自定义画笔?

转载 作者:行者123 更新时间:2023-12-03 21:42:43 35 4
gpt4 key购买 nike

我在哪里可以找到有关 Brushes 如何工作以实现我自己的 System.Windows.Media.Brush 的足够信息?我可以处理所有可卡住的行李,但我需要覆盖什么才能使其正常工作并不是很明显。

是的,所以我并不是说我想使用预定义的画笔。我想扩展 System.Windows.Media.Brush,它是一个抽象类。这一切纯粹是为了我自己的启迪。我什至不确定我可以制作什么样的刷子。我只是想了解画笔的工作原理。如:

public AwesomeBrush : Brush
{

protected override Freezable CreateInstanceCore()
{
return new AwesomeBrush();
}

... // concrete brush stuff

}

最佳答案

我使用 Reflector 快速浏览了现有的画笔.看起来他们的实现非常封闭并且依赖于很多 internal管道。虽然可以实现自己的画笔,但它似乎不受支持。甚至可能 WPF 控件与现有画笔紧密相连,无法与自定义画笔一起使用。

最有可能实现类似自定义画笔的最佳方法是使用 DrawingBrush带有一些复杂的绘图逻辑。您可以使用其他画笔从复杂的形状组合绘图画笔,这样您就可以实现所需的目标。

编辑后更新

由于这是用于教育,您最好下载 Reflector 并使用它来查看画笔的工作原理。它们并不是要自行实现,因为它们依赖于一些 internal程序员通常无法访问的类将很难这样做。

尽管有趣的是 Brush documentation确实有一个注释,供继承者以正确的方式从 Brush 继承。

更多更新

当我四处闲逛时,我发现了一种非常巧妙的方法可以在 chinese blog 上实现类似的目标。 .诀窍是使用标记扩展,使其看起来像一个画笔。实际上,它会根据其属性创建一个新的图像笔刷。似乎他得出了同样的结论,即有一些内部类阻止了简单的实现。

关于.net - 如何在 WPF 中实现自定义画笔?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/794512/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com