【问题标题】:TextBox HideSelection in XAMLXAML 中的文本框隐藏选择
【发布时间】:2022-02-22 08:32:50
【问题描述】:

有什么方法可以在 WPF 中执行相当于 TextBox.HideSelection=false 的操作吗? 下面的代码与我能得到的一样接近——您需要在这些字段中“制表符”以使它们显示出来。 我需要选择至少在按下按钮时全部显示。 (我的实际应用程序绑定到 selectionstart/length 设置) (另外:任何其他允许范围突出显示的控件也可以!) 感谢您的帮助!

<Window x:Class="selectionbrush.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <Style TargetType="{x:Type TextBox}">
        <Setter Property="IsInactiveSelectionHighlightEnabled" Value="True"/>
        <Setter Property="IsReadOnly" Value="True"/>
        <Setter Property="Margin" Value="5"/>
        <Setter Property="SelectionBrush" Value="Green"/>
        <Style.Triggers>
            <MultiTrigger>
                <MultiTrigger.Conditions>
                    <Condition Property="IsSelectionActive" Value="false"/>
                </MultiTrigger.Conditions>
                <Setter Property="SelectionBrush" Value="Red"/>
            </MultiTrigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<StackPanel>
    <Button Content="set selections" Click="Button_Click" Margin="5" MaxWidth="100" HorizontalAlignment="Left" Padding="5,0,5,0"/>
    <TextBox x:Name="tb1" SelectionStart="1" SelectionLength="8" Text="Lorem ipsum dolor sit amet, agam dolore mediocritatem eu qui"/>
    <TextBox x:Name="tb2" SelectionStart="5" SelectionLength="3" Text="Lorem ipsum dolor sit amet, agam dolore mediocritatem eu qui"/>
    <TextBox x:Name="tb3" SelectionStart="9" SelectionLength="12" Text="Lorem ipsum dolor sit amet, agam dolore mediocritatem eu qui"/>
    <TextBox x:Name="tb4" SelectionStart="4" SelectionLength="9" Text="Lorem ipsum dolor sit amet, agam dolore mediocritatem eu qui"/>
    <TextBox x:Name="tb5" SelectionStart="11" SelectionLength="4" Text="Lorem ipsum dolor sit amet, agam dolore mediocritatem eu qui"/>
</StackPanel>

在代码隐藏中使用这个:

        private void Button_Click(object sender, RoutedEventArgs e)
    {
        tb1.SelectionStart = 6; tb1.SelectionLength = 5;
        tb2.SelectionStart = 17; tb2.SelectionLength = 7;
        tb3.SelectionStart = 8; tb3.SelectionLength = 8;
        tb4.SelectionStart = 12; tb4.SelectionLength = 3;
        tb5.SelectionStart = 14; tb5.SelectionLength = 9;
    }

【问题讨论】:

  • TextBox 似乎不可能 - 我将使用 RichTextBox 代替...

标签: wpf xaml textbox selection


【解决方案1】:

TextBox 似乎不可能 - 我将使用 RichTextBox 来代替......

【讨论】:

    【解决方案2】:
    Private Sub TextBox_LostFocus(sender As Object, e As RoutedEventArgs)
            e.Handled = True
        'This keeps the selected text visible by setting handled equal to TRUE
    End Sub
    

    【讨论】:

      猜你喜欢
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多