2013-08-23 97 views
4

我是新来的WPF(c#)。我需要使用triggers来实现图像控制的发光效果。我怎样才能使mouse-enter事件发光效果? 我想用你的回答,我的风格。对MouseEnter发光效果WPF

我的影响是:

<DropShadowEffect x:Key="MyEffect" ShadowDepth="0" Color="Blue" Opacity="1" BlurRadius="20"/> 

我看到许多联系,但他们没有工作。

+0

的追索,我们也许可以帮助您更好,如果你向我们展示你已经尝试过什么。你试过哪个'链接'?他们为什么不为你工作? – Jordy

回答

11

要添加辉光Image的控制,你需要设置EffectDropShadowEffectIsMouseOver=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> 
7

如果你想重用你的影响,你必须捕捉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> 

对于这一点,你必须把你的效果在当前页面/窗口/用户控件

<Window.Resources> 
<DropShadowEffect x:Key="MyEffect" ShadowDepth="0" Color="Blue" Opacity="1" BlurRadius="20"/> 
</Window.Resources> 
+2

+ 1重构代码的方法! – aggietech