<Grid>
<StackPanel>
<TextBox Width="100" Height="30" Margin="40">
<i:Interaction.Behaviors>
<local:EffectBehavior/>
</i:Interaction.Behaviors>
</TextBox>
</StackPanel>
</Grid>
public class EffectBehavior: Behavior<FrameworkElement>
{
protected override void OnAttached()
{
base.OnAttached();
AssociatedObject.MouseMove += AssociatedObject_MouseMouve;
AssociatedObject.MouseLeave += AssociatedObject_MouseLeave;
}
/// <summary>
/// 鼠标移入,控件边框变为透明
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void AssociatedObject_MouseMouve(object sender, System.Windows.Input.MouseEventArgs e)
{
var element=sender as FrameworkElement;
element.Effect = (Effect)new DropShadowEffect() { Color = Colors.Transparent, ShadowDepth = 0 };
}
protected override void OnDetaching()
{
base.OnDetaching();
AssociatedObject.MouseMove -= AssociatedObject_MouseMouve;
AssociatedObject.MouseLeave -= AssociatedObject_MouseLeave;
}
/// <summary>
/// 鼠标移出,控件边框变为红色
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void AssociatedObject_MouseLeave(object sender, System.Windows.Input.MouseEventArgs e)
{
var element = sender as FrameworkElement;
element.Effect = (Effect)new DropShadowEffect() { Color = Colors.Red, ShadowDepth = 0 };
}
}
效果: