wpf在我的自定义控件外捕捉鼠标

时间:2010-12-19 23:29:00

标签: wpf custom-controls

我正在WPF中构建自定义控件。当我的控件处于焦点但用户在控件外部点击时,我想捕捉鼠标按下事件。有没有办法做到这一点,如果是这样的话?

我的控件继承自ListBox。

2 个答案:

答案 0 :(得分:7)

您可以使用UIElement.CaptureMouse及其合作伙伴UIElement.ReleaseMouseCapture将所有鼠标事件捕获到单个控件,而不管事件发生时鼠标是什么。

在您的示例中,我将在控件具有焦点时捕获鼠标,并在控件失去焦点时释放鼠标。

答案 1 :(得分:0)

假设您有一个Window,其中包含TextBox

注册Window的{​​{1}}事件,

MouseDown

您可以使用以下代码

MouseDown += new MouseButtonEventHandler(Window_MouseDown);

如果private void Window_MouseDown(object sender, MouseButtonEventArgs e) { if (TextBox1.IsFocused) { MessageBox.Show("TextBox1 in focus."); } } 成为焦点,请抓住此事件。

相关问题