以不同角度重复绘图

时间:2012-06-11 08:55:55

标签: wpf windows xaml drawing gauge

我目前正在为我的一个项目设计一种仪表控制。到目前为止一切都很好,控制显示得很好。目前我手动放置控件的所有刻度。它有效,但不是很好。

我想知道它是否可能很容易,最好用纯XAML来执行某种重复。意思是我布置了一行并让WPF以不同的角度绘制X次。

目前渲染我的刻度如下:

<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="0" />
    </Line.RenderTransform>
</Line>
<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="18" />
    </Line.RenderTransform>
</Line>
<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="36" />
    </Line.RenderTransform>
</Line>
<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="54" />
    </Line.RenderTransform>
</Line>
<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="72" />
    </Line.RenderTransform>
</Line>
<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="90" />
    </Line.RenderTransform>
</Line>
<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="108" />
    </Line.RenderTransform>
</Line>
<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="126" />
    </Line.RenderTransform>
</Line>
<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="144" />
    </Line.RenderTransform>
</Line>
<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="162" />
    </Line.RenderTransform>
</Line>
<Line>
    <Line.RenderTransform>
        <RotateTransform Angle="180" />
    </Line.RenderTransform>
</Line>

虽然它有效,但我并不喜欢它。

任何想法如何做得更好?

行的其余属性通过以下方式放置在样式定义中:

<Style TargetType="Line">
    <Setter Property="Stroke" Value="{Binding Source={StaticResource displayForeground}}" />
    <Setter Property="StrokeThickness" Value="1" />
    <Setter Property="X1" Value="-85" />
    <Setter Property="X2" Value="-95" />
    <Setter Property="LayoutTransform" Value="1.00 0.00 -0.00 1.00 0 0" />
</Style>

1 个答案:

答案 0 :(得分:0)

为什么不公开控件中的刻度线集合,然后将ItemsControl绑定到它们。勾选对象可以有Angle属性,您可以将RotateTransform绑定到ItemTemplate中。