我有一個WPF按鈕,這樣枚舉和應用WPF風格編程
<Button Name="HelloWorldButton"
Width="100"
Height="100"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Style="{StaticResource TileButton}">
Hello world
</Button>
使用WPF的造型我已經申請樣式模板如下圖所示
<Style x:Key="TileButton" TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="focusRect"
Margin="-6"
BorderThickness="6">
<ContentPresenter />
<Border.BorderBrush>
<SolidColorBrush x:Name="focusRectBrush" Color="Transparent" />
</Border.BorderBrush>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation Duration="0"
Storyboard.TargetName="focusRectBrush"
Storyboard.TargetProperty="Color"
To="Red" />
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
<ColorAnimation Duration="0"
Storyboard.TargetName="focusRectBrush"
Storyboard.TargetProperty="Color"
To="White" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我現在想申請的鼠標懸停通過編程方式編程爲VisualState
。我查看了HelloWorldButton.Style
屬性,看不到任何明顯的實現方法。
注:顯然我明白,這將是微不足道的邊境程序添加到按鈕上,無需使用聲明XAML樣式表,但在我的情況,這不是一個可行的方法。
非常讚賞輸入,但我想你可能已經完全錯過了我的要求一點。上面的例子仍然要求後面的代碼直接依賴(並引用)按鈕的資源。如果我可以使用這種方法,我會直接添加邊框。 –