我目前正在为我的一个项目设计一种仪表控制。到目前为止一切都很好,控制显示得很好。目前我手动放置控件的所有刻度。它有效,但不是很好。
我想知道它是否可能很容易,最好用纯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>
答案 0 :(得分:0)
为什么不公开控件中的刻度线集合,然后将ItemsControl
绑定到它们。勾选对象可以有Angle
属性,您可以将RotateTransform
绑定到ItemTemplate中。