C# 定义几何图形的样式
请不要将其标记为重复。相关问题与我所问的完全不同 我需要为大约180多个C# 定义几何图形的样式,c#,wpf,xaml,wpf-style,geometrydrawing,C#,Wpf,Xaml,Wpf Style,Geometrydrawing,请不要将其标记为重复。相关问题与我所问的完全不同 我需要为大约180多个GeometryDrawing对象设置Pen和Brush属性。我的第一个想法是使用样式,但我了解到样式不能针对几何绘图,因为它不是从框架元素继承的。然后我考虑创建自己的GeometryDrawing2,它继承自GeometryDrawing,并在构造函数中设置Pen和Brush,但发现GeometryDrawing是密封的,无法继承 除了将属性复制粘贴180次之外,实现我想要的功能的最佳方法是什么 编辑 这是我的画集: &l
GeometryDrawing
对象设置Pen
和Brush
属性。我的第一个想法是使用样式
,但我了解到样式
不能针对几何绘图
,因为它不是从框架元素
继承的。然后我考虑创建自己的GeometryDrawing2
,它继承自GeometryDrawing
,并在构造函数中设置Pen
和Brush
,但发现GeometryDrawing
是密封的,无法继承
除了将属性复制粘贴180次之外,实现我想要的功能的最佳方法是什么
编辑
这是我的画集:
<ResourceDictionary>
<DrawingImage x:Key="Drawing1">
<DrawingImage.Drawing>
<GeometryDrawing Geometry="..." />
</DrawingImage.Drawing>
</DrawingImage>
<DrawingImage x:Key="Drawing2">
<DrawingImage.Drawing>
<GeometryDrawing Geometry="..." />
</DrawingImage.Drawing>
</DrawingImage>
<!--180 more such drawings-->
</ResourceDictionary>
我需要为每个
GeometryDrawing
对象设置Brush
和Pen
,以显示Red
和Black
。XAML中通常的干净方式是通过样式
,但正如我上面所解释的,这不适用于几何绘图
。唯一的其他方法是将粘贴Brush=“{StaticResource MyBrush}”
和Pen=“{StaticResource MyPen}”
复制到180+GeometryDrawing
对象中的每一个。或者有没有更快(仅限XAML)的方法?您的问题仍然不完整,缺乏一个好的解决方法。但是,根据您目前提供的信息,我希望基于模板的实现能够解决您的问题。例如:
<ResourceDictionary>
<PathGeometry x:Key="geometry1">...</PathGeometry>
<PathGeometry x:Key="geometry2">...</PathGeometry>
<!-- etc. -->
<DataTemplate DataType="{x:Type PathGeometry}">
<DrawingImage>
<DrawingImage.Drawing>
<GeometryDrawing Geometry="{Binding}" Pen="..." Brush="..."/>
</DrawingImage.Drawing>
</DrawingImage>
</DataTemplate>
</ResourceDictionary>
<ContentControl Content="{StaticResource geometry1}"/>
不明白你的意思。您在哪里复制/粘贴属性?如何存储
GeometryDrawing
对象?为什么它们不在一个可以通过这种方式枚举和赋值的集合中?请改进您的问题,以便清楚地了解您现在正在做什么以及您希望能够做什么,同时确保包含一个很好的例子来说明所有这些。@PeterDuniho:请参阅我的编辑。@Funk的可能重复项一点也不重复。OP没有风格。@Clemens你们读过标题吗?很公平。这显然解决了眼前的问题。谢谢。