我有一个像“文本块”这样的“文本框”。我通过双击文本框来启用编辑功能。现在我想在双击文本框时用一些颜色突出显示文本框边框。我只需要在代码中应用样式。我该怎么做?我试过厚度。但我想要一些整洁干净的东西。
我已经给出了我尝试过的代码。
textBox.IsReadOnly = false;
textBox.SelectAll();
textBox.BorderThickness = new Thickness(1);
你能帮帮我吗?
我有一个像“文本块”这样的“文本框”。我通过双击文本框来启用编辑功能。现在我想在双击文本框时用一些颜色突出显示文本框边框。我只需要在代码中应用样式。我该怎么做?我试过厚度。但我想要一些整洁干净的东西。
我已经给出了我尝试过的代码。
textBox.IsReadOnly = false;
textBox.SelectAll();
textBox.BorderThickness = new Thickness(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>