WPF中,在事件触发器(Image按下去)实现外发光效果

wucaihua2008 2009-07-30 03:41:40
一个Image,我想在mousedown或者MouseLeftButtonDown后,实现外发光的效果?怎么处理?
我只会在属性触发器中实现,不会在事件触发器中实现.
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BitmapEffect">
<Setter.Value>
<OuterGlowBitmapEffect GlowColor="#FFE8F75E" GlowSize="3" />
</Setter.Value>
</Setter>
</Trigger>

如果在 <EventTrigger RoutedEvent="UIElement.MouseLeftButtonDown" >中,怎么实现?

请指教!
...全文
1638 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wucaihua2008 2009-08-20
  • 打赏
  • 举报
回复
我再等几天再接帖,看看大家有没有更好的解决方案.
如果大家有更好的解决方案,请不要吝啬,谢谢.希望能抛砖引玉.
wucaihua2008 2009-08-20
  • 打赏
  • 举报
回复
谢谢,早段时间比较忙,忘记了来接贴,我已经自己解决了.
我把我的解决方法发给大家,下次大家遇到类似的问题,可以参考下

<Style x:Key="ImageStyle" TargetType="{x:Type Image}">
<Style.Triggers>

<EventTrigger RoutedEvent="Image.MouseEnter">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.BitmapEffect).(BitmapEffectGroup.Children)[0].(OuterGlowBitmapEffect.GlowSize)">
<SplineDoubleKeyFrame KeyTime="00:00:00.0000000" Value="5"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Image.MouseLeave">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.BitmapEffect).(BitmapEffectGroup.Children)[0].(OuterGlowBitmapEffect.GlowSize)">
<SplineDoubleKeyFrame KeyTime="00:00:00.0000000" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>


<EventTrigger RoutedEvent="Image.MouseLeftButtonDown" >
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.BitmapEffect).(BitmapEffectGroup.Children)[1].(BevelBitmapEffect.BevelWidth)">
<SplineDoubleKeyFrame KeyTime="00:00:00.0800000" Value="20"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="Image.MouseLeftButtonUp" >
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.BitmapEffect).(BitmapEffectGroup.Children)[1].(BevelBitmapEffect.BevelWidth)">
<SplineDoubleKeyFrame KeyTime="00:00:00.0800000" Value="0"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>

</Style.Triggers>
</Style>

然后给image添加样式ImageStyle
并且要给image加以下属性:
<Image.BitmapEffect>
<BitmapEffectGroup>
<OuterGlowBitmapEffect GlowColor="#FF004EFF" GlowSize="0"/>
<BevelBitmapEffect BevelWidth="0" EdgeProfile="CurvedIn"/>
</BitmapEffectGroup>
</Image.BitmapEffect>
CopperBell 2009-08-19
  • 打赏
  • 举报
回复
帮顶
wuyq11 2009-08-16
  • 打赏
  • 举报
回复
cppfaq 2009-08-16
  • 打赏
  • 举报
回复
参考下面这个,good luck


<Image Name="image1" Source="Image1.png"     UIElement.MouseLeftButtonDown="image_MouseDown"    UIElement.MouseLeftButtonUp="image_MouseUp">
</Image>


private void image_MouseDown(object sender, MouseEventArgs e)
{
Image image = sender as Image;
// set color
}

private void image_MouseUp(object sender, MouseEventArgs e)
{
Image image = sender as Image;
//restor color
}





diryboy 2009-08-01
  • 打赏
  • 举报
回复
事件触发的都要是动画吧?用StoryBoard
flybird066 2009-07-31
  • 打赏
  • 举报
回复
wpf不知道,网页里面是这样用的 CssClass="EditButton" onmouseover="this.className='EditButtonMouseOver'" onmouseout="this.className='EditButton'

17,747

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧