【发布时间】:2015-09-20 04:30:27
【问题描述】:
Ellipse 有一个叫做 IsMouseOver 的属性,我们可以用它来设置椭圆的颜色,就像this post 一样。 但在实际操作中,当鼠标在椭圆上时,笔画会发生变化(我们把椭圆画成圆形),当鼠标在内椭圆(圆) ,颜色恢复到原来的值。 我知道ellipse有个叫MouseEnter的事件,我们可以使用EventTrigger,但是EventTrigger中只能设置StoryBoard。
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10*" />
<ColumnDefinition Width="90*" />
</Grid.ColumnDefinitions>
<Ellipse x:Name="checkButton" Grid.Column="0" Stroke="Black"></Ellipse>
<TextBlock x:Name="txtContent" Grid.Column="1" FontWeight="Bold" VerticalAlignment="Center" FontSize="14" HorizontalAlignment="Center" TextAlignment="Center">
<ContentPresenter />
</TextBlock>
</Grid>
<ControlTemplate.Triggers>
<EventTrigger RoutedEvent="MouseEnter">
<BeginStoryboard></BeginStoryboard>
// something like <Setter Property="Stroke" Value="Red" /> here
</EventTrigger>
</ControlTemplate.Triggers>
我想要的是当 MouseEnter 发生时,设置椭圆描边;当 MouseLeave 发生时,将其设置回来。 有谁有想法吗?
提前致谢!
【问题讨论】:
-
看看我的回答,告诉我为什么错了?
-
@AnjumSKhan 实际上你的答案是正确的,它是这些答案中最优雅的答案,它有效,它不需要 Blend SDK,而且有点 hacky~ :)实际上结果与我的预期有点不同,但我修改了代码以使其正确,我已经在你的答案下发表了评论,请检查。 :)
标签: c# wpf eventtrigger