代码之家  ›  专栏  ›  技术社区  ›  viky

禁用文本框中的拖放

  •  2
  • viky  · 技术社区  · 15 年前

    我有一个声明为只读的wpf文本框

    <TextBox IsReadOnly="True" IsTabStop="False" Width="200" />
    

    因此,用户不能在文本框中写入任何内容或删除内容,但它仍然允许用户从该文本框中拖动文本并将其放到导致从第一个文本框(只读文本框)中删除文本的任何其他文本框中,这是意外的。是虫子吗? 我怎样才能摆脱这个?

    1 回复  |  直到 13 年前
        1
  •  0
  •   Aurelien Ribon    15 年前

    我尝试了以下代码:

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

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

    如果你想在不试图理解的情况下消除你的bug(因为它不应该发生),你可以在你的文本框上放一个空控件(画布就可以了),它的background属性设置为transparent。

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

    但文本将不再可选…