从TextBox禁用拖放

时间:2010-03-30 13:24:32

标签: c# wpf textbox readonly drag

我有一个声明为ReadOnly

的WPF文本框
<TextBox IsReadOnly="True" IsTabStop="False" Width="200" />

因此,用户无法在TextBox中写入任何内容或删除内容,但仍允许用户从此文本框中拖动文本并将其放入导致从第一个文本框中删除文本的任何其他文本框中(只读)一个)那是出乎意料的。这是一个错误吗? 我怎么能摆脱这个?

1 个答案:

答案 0 :(得分:0)

我尝试了以下代码:

<StackPanel>
    <TextBox IsReadOnly="True">Hello</TextBox>
    <TextBox></TextBox>
</StackPanel>

当我将文本(选择之后)从第一个TexbtBox拖放到第二个TexbtBox时,文本被复制,但不会从第一个TextBox中删除。我在.NET 3.5和.NET 4.0目标下尝试过它。

如果你想在不试图理解它的情况下摆脱你的bug(因为它不应该发生),你可以在TextBox的顶部放一个空控件(Canvas就可以了),并设置Background属性透明。

<Grid>
    <TextBox IsReadOnly="True" IsTabStop="False" Width="200" />
    <Canvas Background="Transparent"/>
</Grid>

但是文字将不再可供选择了......