簡體   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