允许对具有IsEnabled = false的textBox进行双击

时间:2014-09-29 02:04:55

标签: c# wpf

我有一个TextBox。

我希望它处于Disabled状态,以便我可以拖动它。一旦我双击它,我希望它回到启用状态。

我可以为此目的使用ReadOnly属性。但是,如果我使用ReadOnly,那么我无法拖动TextBox,而是选择了。

我这样做的实际原因是我想使用TextBox作为TreeViewItem,我想使用拖放功能允许重命名和重新排列等功能。

如果有人可以建议我可以创建的自定义控件,并覆盖某些方法吗?

1 个答案:

答案 0 :(得分:1)

我建议将TextBox包装在Grid中。并为TextBox设置IsHitTestVisible为false。这将避免TextBox的所有鼠标事件。现在将所有拖动事件挂钩到网格,它将起作用。

 <Grid Background="Transparent" VerticalAlignment="Center">
        <TextBox IsHitTestVisible="False" Margin="5" Text="Some text"/>
 </Grid>