[英]How to call a Style Property setter of another property that is set in in the same style in xaml
我在用户控件中编写样式,以从一组轴中控制单个轴的样式。 所有这些都有效,但是现在我想集成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设置为AxisTitle。
当然,我必须要看Axis可视树才能确定所需的内容,但这听起来像是要将变换应用于绑定到Axis中的轴标题的xaml元素。 毫无疑问,Axis是一棵可视树,您可以很轻松地将它与Blend分开(编辑现有模板)。
一旦有了完整的Axis现有样式模板,就可以调整实际引用/绑定标题的位,以便可以动态应用转换。 希望有帮助...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.