C#WPF构建形状的问题

时间:2011-08-19 09:55:36

标签: c# wpf xaml shapes

我创建了一个位于画布元素的形状:

<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>

当我点击Button时,它应该在另一个Canvas容器中创建这样一个元素!

如何在我的代码中多次重用这个构造的Shape而不在XAML中多次写入它?

我已经阅读了有关模板和样式的内容。但我无法真正熟悉我的问题。因为我想在运行时创建这个形状。

1 个答案:

答案 0 :(得分:0)

你可以在像这样的资源中声明Polygon

<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}"/>