如何使用启用 Scroll 制作不可选择的 TextBox?

How can I make unselectable TextBox with enable Scroll?

我想在 WPF 中使用启用的滚动条制作不可选择的文本框。

如果我设置 IsReadOnly=True,它可以滚动但可以选择文本。

如果我设置 IsEnabled=True,它是不可选择的,但滚动被禁用。

IsHitTestVisible=True 也无法选择,禁用滚动。

如何制作不可选择的、启用的滚动文本框?

您可以设置 IsHitTestVisible=false 并使用 ScrollViewer 包裹 TextBox

    <ScrollViewer Width="100" Height="50">
        <TextBox IsHitTestVisible="False" TextWrapping="Wrap">asjdla jksad lkjasd jd kla sljas kdj ksald jksad ksalj dlasj lkajs ljka sajksd</TextBox>
    </ScrollViewer>

'IsHitTestVisible' 导致文本框处于非活动状态,您无法修改内容。我希望下面的代码能满足您的要求

WPF:

<ScrollViewer Width="120" Height="50">
        <TextBox x:Name="txBox" SelectionBrush="Transparent" ContextMenu="{x:Null}" TextWrapping="Wrap" Text="How can I make unselectable TextBox with enable Scroll?"/>
    </ScrollViewer>

如果您想限制从文本框中复制文本,请另外使用以下代码。

后面的代码:

private void TxBox_KeyDown(object sender, KeyEventArgs e)
    {
        if (txBox.SelectedText.Length > 0)
        {
            txBox.SelectionLength = 0;
        }
    }

美好的一天:)