我的思路是参照官方DEMO中的RuleUserControl.xaml里有一段代码:
<UserControl.Resources>
<Style x:Key="ointer" TargetType="c1:C1LinearGaugePointer">
<Style.Setters>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="c1:C1LinearGaugePointer">
<ath x:Name="Root" Stretch="Fill"
Data="M1,3 C1,1.8954304 1.8954304,1 3,1 L11,1 C12.104569,1 13,1.8954304 13,3 C13,3 8.5457163,13 7.4411469,13 L7.4514785,89.679596 L6.5580759,89.667915 L6.5588531,13 C5.4542832,13 1,3 1,3 z" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style.Setters>
</Style>
</UserControl.Resources>
<c1:C1LinearGauge x:Name="gauge"
XAxisLocation="0.1" XAxisLength="0.8" YAxisLocation="0.5"
PointerWidth="0.05" PointerLength="1" PointerOffset="0"
PointerStyle="{StaticResource Pointer}">
该例子通过对Gauge的PointerStyle属性编辑一个自定义的Style就可以实现自定义指针形状。
但将上述方法移植到RadialGauge时,却出现如下报错:
Template cannot be applied to C1GaugePointer.
Details: The template part Root is null!
我猜想是不是只定义了指针的形状边框,没有定义指针原点的位置。请高手帮忙指点一下应该如何解决这问题~感激不尽!! |
|