2013-03-22 28 views
5

我需要將焦點設置爲UserControl本身,而不是它的孩子。
否則我無法實現從緩衝區插入。 :(
設置Focusable=True不利於谷歌 只有SO介紹如何將焦點設置到用戶控件孩子如何設置焦點到UserControl(使其可選)?

我的控件包含:。
- 工具欄綁定到相應的 VM
的命令幾個按鈕 - 文本框是用於過濾
輸入 - 數據網格 - 。產品清單

我需要綁定Ctrl + V鍵命令VM不過來處理這個手勢UserControl必須有內對焦當沒有項目。在網格(虛擬機的集合爲空)按鈕被禁用,唯一可以獲得焦點的元素是TextBox。但它以自己的方式處理Ctrl + V,我不想改變這種行爲。
因此,當我點擊UserControl區域時,需要設置焦點。
我相信UserControl是它的最佳人選。
但我不知道如何讓它可選。

+0

'否則我不能實現從緩衝區插入' - 你能解釋一下嗎?你的問題太模糊了,我聽不懂。同時發佈您的當前代碼和XAML。 – 2013-03-22 18:46:49

+0

我已經添加了一些細節。希望現在更清楚。 – 2013-03-22 20:17:43

回答

12

整個問題出在我誤解控件行爲的問題上。
SO question清楚地表明我相信。

因此,設置UserControl.Focusable = true是不夠的。爲了使其可以通過鍵盤導航IsTabStop也必須是true。爲了使UC可以通過鼠標點擊來選擇,我們應該在鼠標事件處理程序中調用Focus()。而已。