如何从c#中的路径创建DataTemplate

时间:2016-11-14 09:37:15

标签: c# wpf xaml button datatemplate

我正在为手动按钮创建一个按钮控件。使用此按钮可以触发机器运动。按钮上的箭头显示方向。箭头是矢量图形(Shapes.Path),我希望它根据给定的度数倾斜。以下代码显示了我的datatemplate以及我想要转动箭头的方法:

包含datatemplate和路径的symbol属性:

<Setter Property="Symbol">
    <Setter.Value>
        <DataTemplate x:Name="ArrowTemplate">
            <Path x:Name="Arrow" Data="M0,0 64,32 0,64 0,48 32,32 0,16 Z" Stretch="Uniform" Width="150" Fill="{DynamicResource ButtonForegroundBrush}" Stroke="{DynamicResource ButtonForegroundBrush}" RenderTransformOrigin="0.5,0.5">
                <Path.RenderTransform>
                    <TransformGroup>
                        <ScaleTransform/>
                        <SkewTransform/>
                        <RotateTransform/>
                        <TranslateTransform/>
                    </TransformGroup>
                </Path.RenderTransform>
            </Path>
        </DataTemplate>
    </Setter.Value>
</Setter>

我想转动箭头的方法:

private void rotateArrow()
{
    if (this.Symbol != null)
    {
        RotateTransform rotate = new RotateTransform((int)this.ArrowDirection);

        TransformGroup transform = new TransformGroup();
        transform.Children.Add(rotate);

        Path path = (Path)this.Symbol.LoadContent();
        path.RenderTransform = transform;

        // Set the path as datatemplate and set this.Symbol.
    }

}

注意:this.ArrowDirection基于一个枚举,其中包含旋转的度数值。

如果有人知道如何实现这一目标或如何以不同的方式做到这一点,我将非常高兴,因为我无法在任何地方找到它。

提前致谢!

0 个答案:

没有答案