我正在为手动按钮创建一个按钮控件。使用此按钮可以触发机器运动。按钮上的箭头显示方向。箭头是矢量图形(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基于一个枚举,其中包含旋转的度数值。
如果有人知道如何实现这一目标或如何以不同的方式做到这一点,我将非常高兴,因为我无法在任何地方找到它。
提前致谢!