WPF MouseDown事件在控件中不处处触发。

8 浏览
0 Comments

WPF MouseDown事件在控件中不处处触发。

我目前正在与另一个WPF麻烦——鼠标事件进行斗争。

我基本上有一个非常简单的控件(一个包含Grid的边框,其中有几个TextBlock)。我试图实现一个简单的行为:双击应该将控件切换到编辑模式(实际上隐藏了与同一数据绑定的TextBoxes的TextBlocks)。

没什么花哨的,对吧?然而,我仍然在努力。与我的UserControl关联的MouseDoubleClick事件只在我点击控件时触发(比如,点击在TextBlock上)。如果我点击TextBlocks之间的空白空间,什么都不会触发。甚至MouseDown事件也不会触发。

我应该如何使其能够捕捉到每次鼠标点击?我认为将MouseDown事件与Border关联应该能够捕捉到边框上的每次点击,但是...它最终无法捕捉到边框空白部分的点击。

这是我为您准备的一些示例代码,请运行它:

XAML:

MouseDown="Border_MouseDown" MouseUp="Border_mouseUp">

Foreground="White" Background="Red" Text="CLICKED!" />

Code behind:

private void Border_MouseDown(object sender, MouseButtonEventArgs e)

{

thetext.Visibility = Visibility.Visible;

}

private void Border_mouseUp(object sender, MouseButtonEventArgs e)

{

thetext.Visibility = Visibility.Collapsed;

}

现在尝试点击一个"BLUFF"文本:将出现一个"CLICKED"文本。尝试在其他地方点击,即在TextBlocks之间的空白空间:什么都不会发生。

谢谢!

0