MouseEnter WPF上的辉光效果

Bab*_*bad 8 c# wpf xaml triggers dropshadow

我是WPF的新手(c#).我需要在图像控制周围使用发光效果triggers.如何对mouse-enter事件进行发光效果?我想用我的风格来回答你的问题.

我的效果是:

<DropShadowEffect x:Key="MyEffect" ShadowDepth="0" Color="Blue" Opacity="1" BlurRadius="20"/>
Run Code Online (Sandbox Code Playgroud)

我看到很多链接,但它们不起作用.

dko*_*ozl 16

要添加发光Image控制,您需要设置Effect为何DropShadowEffectIsMouseOver=True,如下所示:

<Image Source="/WpfApplication1;component/myimage.png">
   <Image.Style>
      <Style TargetType="{x:Type Image}">
         <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
               <Setter Property="Effect">
                  <Setter.Value>
                     <DropShadowEffect ShadowDepth="0" Color="Blue" Opacity="1" BlurRadius="20"/>
                  </Setter.Value>
               </Setter>
            </Trigger>
         </Style.Triggers>
      </Style>
   </Image.Style>
</Image>
Run Code Online (Sandbox Code Playgroud)


Irf*_*fan 11

如果要重用效果,则必须捕获IsMouseOver触发器并将Control.Effect属性设置为您在资源中定义的属性.

<Button Width="100" Content="Hello Glow" >
 <Button.Style>
  <Style>
   <Style.Triggers>
    <Trigger Property="Button.IsMouseOver" Value="True">
     <Setter Property="Button.Effect" Value="{StaticResource MyEffect}" />
    </Trigger>
   </Style.Triggers>
  </Style>
 </Button.Style>
</Button>
Run Code Online (Sandbox Code Playgroud)

为此,您必须将效果放在当前页面/窗口/用户控件的资源中

<Window.Resources>
 <DropShadowEffect x:Key="MyEffect" ShadowDepth="0" Color="Blue" Opacity="1" BlurRadius="20"/>
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

  • + 1重构代码的方法! (2认同)