我目前正在按钮上实现一个小的UI调整。当我拖动一个要放在按钮上的对象时,我希望当鼠标悬停在按钮上时按钮的背景是相同的(没有拖动对象)。
到目前为止,我能够使用EventTriggers使其工作。
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button AllowDrop="True" Width="100" Height="100">
<Button.Style>
<Style TargetType="Button">
<Style.Resources>
<Color x:Key="ButtonDefaultBackgroundColor">#FFDDDDDD</Color>
<Color x:Key="ButtonDefaultBackgroundMouseOverColor">#FFBEE6FD</Color>
</Style.Resources>
<Style.Triggers>
<EventTrigger RoutedEvent="DragEnter">
<BeginStoryboard>
<Storyboard TargetProperty="Background.Color">
<ColorAnimation Duration="0:0:0" To="{StaticResource ButtonDefaultBackgroundMouseOverColor}" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="DragLeave">
<BeginStoryboard>
<Storyboard TargetProperty="Background.Color">
<ColorAnimation Duration="0:0:0" To="{StaticResource ButtonDefaultBackgroundColor}" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
<EventTrigger RoutedEvent="Drop">
<BeginStoryboard>
<Storyboard TargetProperty="Background.Color">
<ColorAnimation Duration="0:0:0" To="{StaticResource ButtonDefaultBackgroundColor}" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</Grid>
</Window>
在Windows 10中,行为与我预期的一样。但是,当我在Windows 7中测试时,情况并非如此。
您认为这是什么原因?解决方法?
修改 在Windows 7中,按钮的背景颜色不会改变。