[英]Show textbox text highlight while textbox is out of focus
我有一个文本框,里面有一些文本。 当文本框失去焦点时,如何防止文本框隐藏选定的文本突出显示?
放
textBox1.IsInactiveSelectionHighlightEnabled = true;
(显然这是 Fx 4.5 中的新功能)
您可以从 TextBox 类扩展,并使用 SelectionChanged 事件。
大多数时候,更改控件的默认行为是一个坏主意。 用户可能会将其视为意外行为,这很糟糕。 在您的情况下,如果您设法创建这样的文本框,则用户可以同时在多个文本框中选择文本,因为选择不会隐藏。
告诉我,您希望所选文本保持突出显示的原因是什么? 因为也许还有另一种方式。
编辑: .NET 4.5 显然支持此类功能: IsInactiveSelectionHighlightEnabled
。
这是使用 XAML 完成的解决方案。 解决方案关键字是:
使用IsInactiveSelectionHighlightEnabled
,您可以启用该功能
以InactiveSelectionHighlightBrush
结尾,您可以覆盖默认画笔“透明”
<Style x:Key="TextBox.AlwaysShowSelection" TargetType="TextBox">
<Style.Resources>
<SolidColorBrush
x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"
Color="{StaticResource {x:Static SystemColors.HighlightColorKey}}"/>
</Style.Resources>
<Setter Property="IsInactiveSelectionHighlightEnabled" Value="True"/>
</Style>
是的,您还可以在全局范围内覆盖 InactiveSelectionHighlightBrush,但我只想为特定的文本框样式显示它。
因为我们同时有 2022 年。我使用 .NET 6.0,但这也应该适用于较旧的框架(但不像 .NET 4.0 那样太旧;-)
您可以在 On Focus 和 Leaving Focus 事件处理程序上使用下面的代码:-
textbox.SelectionStart = 0;
textbox.SelectionLength = textbox.Text.Length;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.