我想更改ToggleButton的圖標(內容爲Fluent RibbonBar),具體取決於它的IsChecked屬性。現在我寫了以下樣式片段:IsChecked的觸發器不會觸發
<Fluent:ToggleButton.Style>
<Style BasedOn="{StaticResource RibbonButtonStyle}" TargetType="{x:Type Fluent:ToggleButton}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Fluent:ToggleButton}}, Path=IsChecked}" Value="False">
<Setter Property="Icon" Value="{StaticResource ResourceKey=Style.Images.Pined}"/>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Fluent:ToggleButton}}, Path=IsChecked}" Value="True">
<Setter Property="Icon" Value="{StaticResource ResourceKey=Style.Images.Unpined}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Fluent:ToggleButton.Style>
問題是,觸發器不能很好地加載圖像。問題不是,IsChecked沒有實現,我已經測試過了。而且我也沒有在其他地方設置圖標屬性。如果我在其他地方使用它們,圖像資源也可以正常工作。
重建信息:我已將ToggleButton放入Backstage作爲放置在BackstageTabItem中的RibbonListBox的DataTemplate。
你不是直接在別處設置Icon屬性?在這種情況下,'Setter's不起作用。 – lbergnehr
只能直接在ToggleButton聲明中...我會試用。 – CShark
從Element聲明中刪除「Icon =」不起作用 – CShark