繁体   English   中英

如何调用在XAML中以相同样式设置的另一个属性的样式属性设置器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM