我有一个声明为 ReadOnly 的 WPF 文本框
<TextBox IsReadOnly="True" IsTabStop="False" Width="200" />
因此,用户不能在 TextBox 中写入任何内容或删除内容,但它仍然允许用户从该文本框中拖动文本并将其拖放到导致从第一个文本框中删除文本的任何其他文本框中(只读文本框)和那是出乎意料的。它是一个错误吗?我怎样才能摆脱这个?
我尝试了以下代码:
<StackPanel>
<TextBox IsReadOnly="True">Hello</TextBox>
<TextBox></TextBox>
</StackPanel>
当我将文本(选择后)从第一个 TexbtBox 拖放到第二个时,文本被复制,但没有从第一个 TextBox 中删除。我在 .NET 3.5 和 .NET 4.0 目标下进行了尝试。
如果您想摆脱您的错误而不试图理解它(因为它不应该发生),您可以在 TextBox 顶部放置一个空控件(Canvas 可以),并将其 Background 属性设置为透明。
<Grid>
<TextBox IsReadOnly="True" IsTabStop="False" Width="200" />
<Canvas Background="Transparent"/>
</Grid>
但是文本将不再可选择...