none
textbox怎样在IsEnabled设为true的情况下,禁止显示光标和选中文本? RRS feed

  • 问题

  • 如题所述,想要让Textbox处于这样一个状态,在IsReadOnly为true的情况下,鼠标在textbox不显示光标,也不可选中文本内容,但要响应TextBox的鼠标事件,如果设置IsEnabled为false,则鼠标事件不会响应的
    2020年2月25日 9:53

全部回复

  • 在只读属性为true时

    textbox默认不显示光标位置,可以通过IsReadOnlyCaretVisible属性进行更改。

    textbox可以选择文本内容,将选择文本内容的背景色改为透明或者透明度为0即可SelectionOpacity, SelectionBrush

    textbox默认响应隧道鼠标事件

    当禁用时

    textbox默认不响应事件

    2020年2月26日 1:26
  • Hi,

    你可以使用下面代码

    <Style x:Key="RenamingTextBox" TargetType="{x:Type TextBox}">
                <Style.Setters>
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type TextBox}">
                                <Grid>
                                    <TextBlock x:Name="block" Visibility="Visible" Text="{TemplateBinding Text}" Margin="1.5"/>
                                    <TextBox x:Name="box" Visibility="Collapsed" Text="{TemplateBinding Text}"/>
                                </Grid>
                                <ControlTemplate.Triggers>
                                    <DataTrigger Binding="{Binding IsRenaming}" Value="true">
                                        <DataTrigger.Setters>
                                            <Setter TargetName="block" Property="TextBox.Visibility" Value="Collapsed" />
                                            <Setter TargetName="box" Property="TextBox.Visibility" Value="Visible" />
                                        </DataTrigger.Setters>
                                    </DataTrigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style.Setters>
            </Style>
        </Window.Resources>

    Best Regards,

    Alex


    如果您对Visual Studio 或Microsoft Azure相关产品感兴趣,请点击此链接,或扫描以下二维码注册获取相关信息。


    2020年2月26日 6:39