我有一个多边形,表示仪表上的针。针根据压力表上的当前值旋转。
针使用DropShadowEffect投射阴影,但阴影随针一起旋转,因为阴影是在执行RenderTransformation之前生成的。
这是多边形的XAML
<Polygon Points="3,1 -3,1 -2,-60 0,-100 2,-60">
<Polygon.RenderTransform>
<TransformGroup>
<ScaleTransform>
<ScaleTransform.ScaleY>
<MultiBinding Converter="{StaticResource MultiplyConverter}">
<MultiBinding.Bindings>
<Binding ElementName="InnerEllipse" Path="ActualWidth"/>
<Binding Source="0.0045"/>
</MultiBinding.Bindings>
</MultiBinding>
</ScaleTransform.ScaleY>
</ScaleTransform>
<RotateTransform>
<RotateTransform.Angle>
<MultiBinding Converter="{StaticResource AngleConverter}">
<MultiBinding.Bindings>
<Binding Path="Ratio" RelativeSource="{RelativeSource TemplatedParent}"/>
<Binding Path="ParentGauge.StartAngle" RelativeSource="{RelativeSource TemplatedParent}"/>
<Binding Path="ParentGauge.EndAngle" RelativeSource="{RelativeSource TemplatedParent}"/>
</MultiBinding.Bindings>
</MultiBinding>
</RotateTransform.Angle>
</RotateTransform>
</TransformGroup>
</Polygon.RenderTransform>
<Polygon.Fill>
<LinearGradientBrush EndPoint="0,0.5" StartPoint="1,0.5">
<GradientStop Color="{Binding Path=Color, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource LightenOrDarkenColor}, ConverterParameter=0.2}" Offset="0.462"/>
<GradientStop Color="{Binding Path=Color, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource LightenOrDarkenColor}, ConverterParameter=-0.2}" Offset="0.552"/>
</LinearGradientBrush>
</Polygon.Fill>
<Polygon.Effect>
<DropShadowEffect ShadowDepth="3"/>
</Polygon.Effect>
</Polygon>
有没有什么方法可以让它在执行旋转后产生阴影,以便阴影来自一致的方向?
修改
顺便说一句,我知道我可以为DropShadowEffect定义Direction,我想我可以将它绑定到仪表的值,这样它就会向相反方向旋转,但我想可能会更简单一些而且更优雅的方法。