我在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