如何在xaml

时间:2015-05-12 15:35:39

标签: c# wpf 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设置为Style内的AxisTitle。

1 个答案:

答案 0 :(得分:0)

当然,我必须看到Axis可视化树,以确定您想要什么,但听起来您想要将变换应​​用于绑定到Axis内轴标题的xaml元素。毫无疑问,Axis是一个可视化树,您可以轻松地使用Blend拆分(编辑现有模板)。

获得Axis的完整现有样式模板后,您可以调整实际引用/绑定到标题的位,以便动态应用变换。希望有所帮助...