我正在尝试创建一个文本框,当聚焦时会发光。
到目前为止,我看到的所有有关如何执行此操作的示例都是基于OuterGlowBitmapEffect的,而且它似乎在 .net 4 中不起作用。
第二篇推荐使用模糊效果。我不知道如何使用模糊来使对象的外层发光而不扭曲对象的内部内容。
最终,我希望创建一个文本框,它会在聚焦时显示发光动画,并且在控件失去焦点后发光会缓慢(1-2 秒)消失。
关于在 wpf 4.0 中执行此操作的最佳方法有什么想法吗?
我正在尝试创建一个文本框,当聚焦时会发光。
到目前为止,我看到的所有有关如何执行此操作的示例都是基于OuterGlowBitmapEffect的,而且它似乎在 .net 4 中不起作用。
第二篇推荐使用模糊效果。我不知道如何使用模糊来使对象的外层发光而不扭曲对象的内部内容。
最终,我希望创建一个文本框,它会在聚焦时显示发光动画,并且在控件失去焦点后发光会缓慢(1-2 秒)消失。
关于在 wpf 4.0 中执行此操作的最佳方法有什么想法吗?
您可以尝试使用DropShadowEffect
. 这是一个例子
更新。ATextBox
在聚焦时开始“发光”,而在失去焦点时“发光”会慢慢淡出两秒钟
<TextBox Text="Test">
<TextBox.Style>
<Style TargetType="TextBox">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect ShadowDepth="0"
Color="Gold"
Opacity="0"
BlurRadius="8"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation To="1.0"
Storyboard.TargetProperty="(Effect).Opacity"
Duration="00:00:00"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation To="0.0"
Storyboard.TargetProperty="(Effect).Opacity"
Duration="00:00:02"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
查看 http://wpfthemes.codeplex.com/ 了解很多好的 wpf 主题创意。特别是,请查看 Bureau Black 中文本框的主题。我认为您想要的实际上是他们用于“鼠标悬停”属性的内容,但是应该很容易将其更改为焦点属性。