c# WPF构建形状的问题

本文关键字:问题 WPF 构建 | 更新日期: 2023-09-27 18:06:11

我已经创建了一个位于canvas中的形状元素:

<Canvas HorizontalAlignment="Left" Width="47" Height="71">
  <Polygon Points="25 0 10 43 40 43" Stroke="Black" Fill="Orange" Height="45"   Canvas.Left="0" Canvas.Bottom="0" Width="47"></Polygon>
            <Ellipse Height="20" Width="20" Stroke="Black" Fill="Black" Canvas.Bottom="45" Canvas.Left="15"></Ellipse>
     </Canvas>

和我,当我点击按钮,它应该创建这样一个元素在另一个画布容器!

我怎么能重用这个构造形状几次在我的代码没有写它不止一次在XAML?

我读过一些关于模板和样式。但我不能真正适应我的问题。因为我想在运行时创建这些形状

c# WPF构建形状的问题

你可以像这样在资源中声明多边形

<Window.Resources>
        <Polygon x:Key = "Poly" Points="25 0 10 43 40 43" Stroke="Black" Fill="Orange" Height="45"   Canvas.Left="0" Canvas.Bottom="0" Width="47"/>
</Window.Resources>

那么你可以这样使用

   <ContentControl Content="{StaticResource Poly}"/>

同样你也可以做

<Window.Resources>
    <Canvas HorizontalAlignment="Left" Width="47" Height="71" x:Key="MyShape">
        <Polygon Points="25 0 10 43 40 43" Stroke="Black" Fill="Orange" Height="45"   Canvas.Left="0" Canvas.Bottom="0" Width="47"></Polygon>
        <Ellipse Height="20" Width="20" Stroke="Black" Fill="Black" Canvas.Bottom="45" Canvas.Left="15"></Ellipse>
    </Canvas>
</Window.Resources>
<ContentControl Content="{StaticResource MyShape}"/>