【发布时间】:2015-05-12 15:35:39
【问题描述】:
我正在用户控件中编写样式以控制轴集合中单个轴的样式。这一切都有效,但现在我想集成 AxisTitle 的旋转。
但如果我执行以下操作(仅显示标题设置器):
<UserControl.Resources>
<Style x:Key="AxisStyle" TargetType="myLib:AxisBase">
<Setter Property="AxisTitle" Value="{Binding Title, Mode=OneWay}" />
<Setter Property="RenderTransform">
<Setter.Value>
<RotateTransform Angle="90" />
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
然后将旋转应用于轴基,它是所有轴,而不仅仅是标题。 (我明白为什么)
但是如何更改代码以使此 RenderTransform 应用于 AxisTitle?
如果我对特定的轴实例执行以下操作,会发生什么:
<Resources>
<Style x:Key="AxisTitleStyle" TargetType="myLib:AxisTitle">
<Setter Property="RenderTransform">
<Setter.Value>
<RotateTransform Angle="90" />
</Setter.Value>
</Setter>
</Style>
</Resources>
<Axis Style="{StaticResource AxisTitleStyle>/>
但是我想把它放到AxisBase的样式里面来设置标题的样式。
问:这可能吗?
这只是我最终想要实现的第一步。像这样的属性依赖旋转(伪代码):
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Axis.RotateTitle}" Value="True">
<Setter Property="RenderTransform">
<Setter.Value>
<RotateTransform Angle="90" />
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Path=Axis.RotateTitle}" Value="False">
<!-- Do nothing -->
</DataTrigger>
</Style.Triggers>
但首先我必须了解如何将 RenderTransform 设置为 Style 内的 AxisTitle。
【问题讨论】: