为什么此XAML无法按预期工作?

我很头痛,试图在鼠标移过它时改变按钮的默认行为。下面是部分代码: (我省略的代码,各种面板,并只保留代码感兴趣的面板)为什么此XAML无法按预期工作?

<Window.Resources> 

<Style x:Key="leftPanelButtons" TargetType="{x:Type Button}">

.... various setters go here ....

<Setter Property="Background" Value="ForestGreen"/>

<Style.Triggers>

<Trigger Property="IsMouseOver" Value="True">

<Setter Property="Background" Value="DarkSeaGreen"/>

</Trigger>

</Style.Triggers>

</Style>

</Window.Resources>

<DockPanel Grid.Row="2">

<DockPanel Height="Auto" Width="Auto" VerticalAlignment="Stretch">

<UniformGrid Columns="1" Height="Auto" VerticalAlignment="Stretch" MinWidth="150" Width="Auto">

<UniformGrid.Resources>

<Style BasedOn="{StaticResource leftPanelButtons}" TargetType="Button"/>

</UniformGrid.Resources>

<Button>

button1

</Button>

<Button>

button2

</Button>

<Button>

button3

</Button>

</UniformGrid>

<StackPanel Height="Auto" Width="Auto" Background="PaleGoldenRod">

</StackPanel>

</DockPanel>

</DockPanel>

我期待按钮的背景颜色设置为森林绿和变化当鼠标移动到按钮上时,转到DarkSeaGreen。我确实获得了ForestGreen颜色,但是当我将鼠标移动到按钮上时,颜色变为浅蓝色变体。我有点复制了这个page的代码。

回答:

是的,它有点奇怪。要修改MouseOver上的按钮背景,您实际上必须更改ControlTemplate。请看这里:

How do you change Background for a Button MouseOver in WPF?

以上是 为什么此XAML无法按预期工作? 的全部内容, 来源链接: utcz.com/qa/260358.html

回到顶部