我在WPF中構建了一個自定義控件。當我的控件處於焦點中時,我想捕捉鼠標按下事件,但用戶在控件外單擊。有沒有辦法做到這一點,如果是的話如何?wpf在我的自定義控件外捕捉鼠標
我的控件繼承自ListBox。
我在WPF中構建了一個自定義控件。當我的控件處於焦點中時,我想捕捉鼠標按下事件,但用戶在控件外單擊。有沒有辦法做到這一點,如果是的話如何?wpf在我的自定義控件外捕捉鼠標
我的控件繼承自ListBox。
您可以使用UIElement.CaptureMouse
及其合作伙伴UIElement.ReleaseMouseCapture
將所有鼠標事件捕獲到單個控件,而不管事件發生時鼠標是否結束。
在你的例子中,當控件有焦點時我會捕獲鼠標,當控件失去焦點時釋放鼠標。
假設你有一個Window
和TextBox
就可以了。
在報名Window
的MouseDown
事件,
MouseDown += new MouseButtonEventHandler(Window_MouseDown);
您可以使用下面的代碼
private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
if (TextBox1.IsFocused)
{
MessageBox.Show("TextBox1 in focus.");
}
}
爲了趕上這個活動,如果TextBox1
對焦。
如果控件具有焦點並且任何外部點擊都不會改變該焦點,那麼您的控件如何失去焦點? – 2010-12-19 23:31:26