如何使用 PathGeometry 资源中的 PathFigure?
How to use PathFigure from resources in PathGeometry?
我想知道是否有任何方法可以从 xaml 中的 PathGeometry
元素中的资源中使用 PathFigure
。假设我有一个 ResourceDictionary 和其中的两个 PathFigure
对象,其中 'x:Key' 属性分别等于 "Figure1" 和 "Figure2"。
我的目标是创建一个 PathGeometry
和 Figures
属性 填充包含图 1 和图 2 的集合。我可以使用代码隐藏文件轻松完成此操作,但是我想知道是否有任何方法可以仅使用 xaml 来完成。
<PathFigure IsClosed="True" StartPoint="2,9" x:Key="Figure1">
<ArcSegment Point="15,9" Size="6.5, 2"/>
<LineSegment Point="15,12"/>
<ArcSegment Point="2,12" Size="6.5, 2"/>
</PathFigure>
<PathFigure IsClosed="True" StartPoint="10,7" x:Key="Figure2">
<LineSegment Point="10, 2"/>
<LineSegment Point="13,2"/>
<LineSegment Point="13,7"/>
<ArcSegment Point="10,7" Size="2,2" IsLargeArc="True"/>
</PathFigure>
我现在可以创建 PathGeometry
:
<PathGeometry FillRule="Nonzero" x:Key="1">
<PathFigureCollection>
//Here I want to put Figure1 and Figure2
</PathFigureCollection>
</PathGeometry>
我想我可以写一些 MarkupExtension
来做下面的事情,但我正在寻找最好的方法。
谢谢你的建议。
您不需要任何特别的东西,只需已经内置的 StaticResourceExtension
class(标记扩展)。
<Window.Resources>
<PathFigure IsClosed="True" StartPoint="2,9" x:Key="Figure1">
<ArcSegment Point="15,9" Size="6.5, 2"/>
<LineSegment Point="15,12"/>
<ArcSegment Point="2,12" Size="6.5, 2"/>
</PathFigure>
<PathFigure IsClosed="True" StartPoint="10,7" x:Key="Figure2">
<LineSegment Point="10, 2"/>
<LineSegment Point="13,2"/>
<LineSegment Point="13,7"/>
<ArcSegment Point="10,7" Size="2,2" IsLargeArc="True"/>
</PathFigure>
<PathGeometry FillRule="Nonzero" x:Key="OneAndTwo">
<StaticResource ResourceKey="Figure1" />
<StaticResource ResourceKey="Figure2" />
</PathGeometry>
</Window.Resources>
用法:
<Path Stroke="Black" StrokeThickness="1" Data="{StaticResource OneAndTwo}" />
我想知道是否有任何方法可以从 xaml 中的 PathGeometry
元素中的资源中使用 PathFigure
。假设我有一个 ResourceDictionary 和其中的两个 PathFigure
对象,其中 'x:Key' 属性分别等于 "Figure1" 和 "Figure2"。
我的目标是创建一个 PathGeometry
和 Figures
属性 填充包含图 1 和图 2 的集合。我可以使用代码隐藏文件轻松完成此操作,但是我想知道是否有任何方法可以仅使用 xaml 来完成。
<PathFigure IsClosed="True" StartPoint="2,9" x:Key="Figure1">
<ArcSegment Point="15,9" Size="6.5, 2"/>
<LineSegment Point="15,12"/>
<ArcSegment Point="2,12" Size="6.5, 2"/>
</PathFigure>
<PathFigure IsClosed="True" StartPoint="10,7" x:Key="Figure2">
<LineSegment Point="10, 2"/>
<LineSegment Point="13,2"/>
<LineSegment Point="13,7"/>
<ArcSegment Point="10,7" Size="2,2" IsLargeArc="True"/>
</PathFigure>
我现在可以创建 PathGeometry
:
<PathGeometry FillRule="Nonzero" x:Key="1">
<PathFigureCollection>
//Here I want to put Figure1 and Figure2
</PathFigureCollection>
</PathGeometry>
我想我可以写一些 MarkupExtension
来做下面的事情,但我正在寻找最好的方法。
谢谢你的建议。
您不需要任何特别的东西,只需已经内置的 StaticResourceExtension
class(标记扩展)。
<Window.Resources>
<PathFigure IsClosed="True" StartPoint="2,9" x:Key="Figure1">
<ArcSegment Point="15,9" Size="6.5, 2"/>
<LineSegment Point="15,12"/>
<ArcSegment Point="2,12" Size="6.5, 2"/>
</PathFigure>
<PathFigure IsClosed="True" StartPoint="10,7" x:Key="Figure2">
<LineSegment Point="10, 2"/>
<LineSegment Point="13,2"/>
<LineSegment Point="13,7"/>
<ArcSegment Point="10,7" Size="2,2" IsLargeArc="True"/>
</PathFigure>
<PathGeometry FillRule="Nonzero" x:Key="OneAndTwo">
<StaticResource ResourceKey="Figure1" />
<StaticResource ResourceKey="Figure2" />
</PathGeometry>
</Window.Resources>
用法:
<Path Stroke="Black" StrokeThickness="1" Data="{StaticResource OneAndTwo}" />