2014-09-29 38 views
0

我有一個TextBox。允許雙擊文本框IsEnabled = false

我希望它是處於禁用狀態,這樣我就可以拖動。一旦我雙擊它,我希望它恢復啓用。

我可以使用只讀屬性用於此目的。但是,如果我使用ReadOnly,那麼我無法拖動文本框,而是得到選擇。

我這樣做的實際原因是我想使用文本框爲樹型視圖和我想允許像重命名功能和使用拖放重新排列。

如果任何人都可以提出類似的東西,我可以創建和覆蓋一些方法自定義控件?

+0

你想調用一些方法或綁定到命令嗎? – pushpraj 2014-09-29 04:13:45

+0

我想處理MouseDoubleClick事件。我有一個解決方案。此時冒泡事件是我的朋友。我在TreeViewItem而不是TextBox上監聽MouseDoubleClick。由於TextBox被禁用,TreeViewItem的事件被觸發。 – Vishal 2014-09-29 04:17:50

+0

這就是我的想法,如果可行的話,您可以捕獲父容器上的事件。如果您需要處理文本框本身,那麼我們可能會進一步深入研究。 – pushpraj 2014-09-29 04:20:07

回答

1

我建議包裝內網格文本框。併爲文本框設置IsHitTestVisible爲false。這將避免TextBox的所有鼠標事件。現在,將所有拖動事件掛接到網格,它將起作用。

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

我可以使用其他容器類型,如StackPanel嗎? – Vishal 2014-09-29 06:36:34

+0

是的你可以。如果有效,請接受答案。 – Jawahar 2014-09-29 06:38:03

+0

不,我現在查過了。這是行不通的。當我雙擊它時,我無法在EditMode中獲取文本框。 – Vishal 2014-09-29 06:40:55