0
我有一個按鈕可視狀態管理器內的故事板奇怪的問題。我有兩個相同風格的按鈕和一個特定的Foreground
。 Path
即按鈕的內容將其Fill
屬性綁定到此前景。VisualState故事板適用於資源而不是控件?
<Button Style="{DynamicResource ButtonStyleListNavigation}"
Foreground="{DynamicResource NavigationButtonForegroundBrush}">
<Button.Content>
<Path Data="{StaticResource LeftArrowPath}"
Fill="{Binding RelativeSource=
{RelativeSource Mode=FindAncestor, AncestorType=Button},
Path=Foreground}" />
</Button.Content>
</Button>
<Button Style="{DynamicResource ButtonStyleListNavigation}"
Foreground="{DynamicResource NavigationButtonForegroundBrush}">
<Button.Content>
<Path Data="{StaticResource RightArrowPath}"
Fill="{Binding RelativeSource=
{RelativeSource Mode=FindAncestor, AncestorType=Button},
Path=Foreground}" />
</Button.Content>
</Button>
在正常狀態的按鈕看起來是這樣的:
風格ButtonStyleListNavigation
如下:
<Style x:Key="ButtonStyleListNavigation" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimationUsingKeyFrames
Storyboard.TargetProperty=
"(Control.Foreground).(SolidColorBrush.Color)">
<EasingColorKeyFrame KeyTime="0" Value="Chocolate" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed" />
<VisualState x:Name="Disabled" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<ContentPresenter x:Name="contentPresenter" />
</Border>
</ControlTemplate>
</Setter>
</Style>
因此,當用戶鼠標懸停一個按鈕,它的顏色應該改變,非常簡單。
兩個按鈕改變它們的顏色:但是,什麼,當我將鼠標放置一個按鈕出現這種情況。我顯然做錯了什麼,但我無法弄清楚它是什麼。
啊,這是有道理的。所以我必須改變整個畫筆而不是畫筆的顏色? –
或者我可以停止使用'Brush'資源。 –
剛剛看到您的編輯,這正是我現在要發佈的內容。畢竟似乎是正確的做法。 – Clemens