0

我有一个像“文本块”这样的“文本框”。我通过双击文本框来启用编辑功能。现在我想在双击文本框时用一些颜色突出显示文本框边框。我只需要在代码中应用样式。我该怎么做?我试过厚度。但我想要一些整洁干净的东西。

我已经给出了我尝试过的代码。

textBox.IsReadOnly = false;
textBox.SelectAll();
textBox.BorderThickness = new Thickness(1);

你能帮帮我吗?

4

1 回答 1

1

看起来类似于:EventTrigger with Setter in WPF?

您需要EventTrigger使用 XAML 来获得您想要的功能。请注意,要使其正常工作,您应该将 的值更改BorderThickness为不是 1 的值。如果它是 1(默认值),它将显示标准 3d 边框。

         <TextBox x:Name="tb" Width="150" Height="30" IsReadOnly="True" Text="Double click to type" 
             BorderBrush="Black" BorderThickness="0.99">
            <TextBox.Triggers>
            <EventTrigger RoutedEvent="TextBox.MouseDoubleClick" SourceName="tb">
                <BeginStoryboard>
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Duration="0"
                                   Storyboard.TargetProperty="(TextBox.IsReadOnly)">
                            <DiscreteObjectKeyFrame KeyTime="0">
                                <DiscreteObjectKeyFrame.Value>
                                    <sys:Boolean>False</sys:Boolean>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                    </BeginStoryboard>
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBox.BorderBrush).Color">
                                <EasingColorKeyFrame KeyTime="0:0:0.1" Value="Red"/>
                            </ColorAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
            <EventTrigger RoutedEvent="TextBox.LostFocus" SourceName="tb">
                <BeginStoryboard>
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Duration="0"
                                   Storyboard.TargetProperty="(TextBox.IsReadOnly)">
                            <DiscreteObjectKeyFrame KeyTime="0">
                                <DiscreteObjectKeyFrame.Value>
                                    <sys:Boolean>True</sys:Boolean>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </BeginStoryboard>
                    <BeginStoryboard>
                        <Storyboard>
                            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(TextBox.BorderBrush).Color">
                                <EasingColorKeyFrame KeyTime="0:0:0.1" Value="Black"/>
                            </ColorAnimationUsingKeyFrames>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger>
        </TextBox.Triggers>                
    </TextBox>
于 2013-10-15T06:01:15.477 回答