gpt4 book ai didi

.net - 如何更改 DrawingVisual 填充和描边

转载 作者:行者123 更新时间:2023-12-01 11:52:09 27 4
gpt4 key购买 nike

我有一个 DrawingVisual对象,我想更改它的填充和描边。

我已经为 Fill 尝试过这个:

DrawingVisual MyDrawing = new DrawingVisual();
SetFill(Brushes.Red, MyDrawing.Drawing);

SetFill 在哪里:

private void SetFill(Brush fill, DrawingGroup group)
{
foreach (Drawing drw in group.Children)
{
if (drw is DrawingGroup)
SetFill(fill, drw as DrawingGroup);
else if (drw is GeometryDrawing)
{
GeometryDrawing geo = drw as GeometryDrawing;
geo.Brush = fill;

using (DrawingContext context = MyDrawing.RenderOpen())
{
context.DrawDrawing(group);
}
}
}
}

但在这种情况下,我的 DrawingVisual 可能会被绘制到不同的位置,就好像没有应用更多的转换(到 MyDrawing)。

此外,如果我更改此指令:context.DrawDrawing(group);与另一个:context.DrawDrawing(MyDrawing.Drawing);我得到一个奇怪的效果:如果我第一次更改填充时没有任何反应,而第二次正确更改填充而不更改图形的位置。

我该怎么办?

最佳答案

解决您的问题(动态更改填充)的一种更简单的方法是使用自己的 SolidColorBrush对于所有填充并更改其 Color随时需要。

关于.net - 如何更改 DrawingVisual 填充和描边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10511523/

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