我要实现的是、
1. 当鼠标移(MouseOver)到每个Border上面时,border的BorderBrush属性发生变化,由Transparent变为OrangeRed, 移走时恢复为原来属性
2. 当点击(MouseClick)任意一个Border时,border的BorderBrush就会为OrangeRed,当点击另一个Border时之前选中的Item的Border变为Transparent.
我的wpf结构如下:
<Windows.Re <Window.Resources>
<Style TargetType="Border">
<Setter Property="BorderThickness" Value="5"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="OrangeRed"/>
</Trigger>
</Style.Triggers>
</Style> <Style TargetType="Image">
<EventSetter Event="MouseLeftButtonDown" Handler="BorderItemClicked"/>
</Style> </Window.Resources><UniformGrid Column="4" Row="2">
<Border>
<Image Source=... MouseEvent....>
</Boder>
<Border>
<Image Source=... MouseEvent....>
</Boder>
<Border>
<Image Source=... MouseEvent....>
</Boder>
<Border>
<Image Source=... MouseEvent....>
</Boder>
......
</UniformGrid>
我现在第一步已经实现,第二步基本实现,有一个Bug,问题是在我任意点击一个Border后再次点击第二个Border,当鼠标移回到(MouseOver)前一个border时不会触发MouseOver事件,也就是说前一个border的属性没有变化。
请问是什么原因?谢谢大家
1. 当鼠标移(MouseOver)到每个Border上面时,border的BorderBrush属性发生变化,由Transparent变为OrangeRed, 移走时恢复为原来属性
2. 当点击(MouseClick)任意一个Border时,border的BorderBrush就会为OrangeRed,当点击另一个Border时之前选中的Item的Border变为Transparent.
我的wpf结构如下:
<Windows.Re <Window.Resources>
<Style TargetType="Border">
<Setter Property="BorderThickness" Value="5"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="OrangeRed"/>
</Trigger>
</Style.Triggers>
</Style> <Style TargetType="Image">
<EventSetter Event="MouseLeftButtonDown" Handler="BorderItemClicked"/>
</Style> </Window.Resources><UniformGrid Column="4" Row="2">
<Border>
<Image Source=... MouseEvent....>
</Boder>
<Border>
<Image Source=... MouseEvent....>
</Boder>
<Border>
<Image Source=... MouseEvent....>
</Boder>
<Border>
<Image Source=... MouseEvent....>
</Boder>
......
</UniformGrid>
我现在第一步已经实现,第二步基本实现,有一个Bug,问题是在我任意点击一个Border后再次点击第二个Border,当鼠标移回到(MouseOver)前一个border时不会触发MouseOver事件,也就是说前一个border的属性没有变化。
请问是什么原因?谢谢大家
我的代码在Border里包含图像Image,我测试了每次点击(MouseClick)的是Image,所以我目前的做法是在后台通过设置Image的Parent(此处为Border)来更改属性。当点击图片时((Border)bullet1.Parent).BorderBrush = Brushes.OrangeRed;当点击其他图片时((Border)bullet1.Parent).BorderBrush = Brushes.Transparent;
麻烦你指点一下 多谢