如何在WPF 4.0中创建发光的TextBox? [英] How to create glowing TextBox in WPF 4.0?

查看:96
本文介绍了如何在WPF 4.0中创建发光的TextBox?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个文本框,该文本框在聚焦时会发光。

I'm trying to create a text box, which would glow when focused.

到目前为止,我所见过的所有示例均基于 OuterGlowBitmapEffect ,它似乎在.net 4中不起作用

All samples of how to do this I've seen so far were based on OuterGlowBitmapEffect , and it appears that it does not work in .net 4.

第二篇文章中的建议是使用模糊效果。我不知道如何使用模糊来使对象的外层发光而不扭曲对象的内部内容。

The recommendation in the second article is to use blur effect. I have no idea on how to use blur to get object's outer layer to glow without distorting the inner content of the object.

最终,我希望创建一个文本框,当聚焦时将显示发光的动画,并且在控件失去焦点后发光将缓慢(1-2秒)消失。

Ultimately, I'm hoping to create a text box, which would display glow up animation when focused, and the glow would slowly (1-2 seconds) fade after the control has lost focus.

关于什么是任何想法在wpf 4.0中执行此操作的最佳方法?

Any ideas on what is the best way to do this in wpf 4.0?

推荐答案

您可以尝试使用<$获得一个不错的发光效果 c $ c> DropShadowEffect 。这是一个示例

You can try to get a decent "Glow-Effect" with DropShadowEffect. Here is an example

更新 TextBox 在聚焦时开始发光,而在失去聚焦时发光缓慢消失两秒钟

Update. A TextBox that starts to "glow" when focused and the "glow" slowly fades out for two seconds when it loses focus

<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>

这篇关于如何在WPF 4.0中创建发光的TextBox?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆