Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
193 views
in Technique[技术] by (71.8m points)

c# - How to remove BorderThickness and Effect when clicking outside WPF

I have a custom Style for textbox, I apply DropShadowEffect and a border in this textbox, I would like to remove the effect of both the border and the Shadow when user clicks outside the wpf.

For example if a user has wpf open and clicks on the windows desktop, wpf should remove the border and shadow.

My Style:

<Style x:Key="MTextBox" TargetType="{x:Type TextBox}">
<Setter Property="BorderBrush" Value="White" />
<Style.Triggers>
    <Trigger Property="IsMouseOver" Value="True">
        <Setter Property="BorderThickness" Value="2" />
        <Setter Property="BorderBrush" Value="Red" />
    </Trigger>
    <Trigger Property="IsFocused" Value="True">
        <Setter Property="BorderThickness" Value="2" />
        <Setter Property="BorderBrush" Value="Red" />
        <Setter Property="Effect">
            <Setter.Value>
                <DropShadowEffect ShadowDepth="1" Color="Red" Opacity="1" BlurRadius="2"/>
            </Setter.Value>
        </Setter>
    </Trigger>
</Style.Triggers>
question from:https://stackoverflow.com/questions/66068012/how-to-remove-borderthickness-and-effect-when-clicking-outside-wpf

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Try property "IsKeyboardFocused" instead of "IsFocused" in your second trigger.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...