WPF中为什么路由事件不响应

给一个TextBox加ContextMenu,想通过路由事件在TextBox里响应,但现在能弹出菜单,却不能响应事件<TextBoxMargin="0,5"MenuIte... 给一个TextBox加ContextMenu,想通过路由事件在TextBox里响应,但现在能弹出菜单,却不能响应事件
<TextBox Margin="0,5" MenuItem.Click="TextBox_Click">
<TextBox.ContextMenu>
<ContextMenu >
<MenuItem Header="测试" />
<Separator />
<MenuItem Header="AA"/>
<MenuItem Header="BBBB"/>
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
展开
 我来答
Yeshirow
2011-12-30 · TA获得超过340个赞
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:139万
展开全部
MenuItem.ClickEvent 只bubble 到 VisualTreeHelper.GetParent (相对于 Sender) 返回 null 或 eventargs 的 handled=True.

当 ContextMenu 里的 MenuItem 被 clicked, 路由开始. 你可以用 VisualTreeHelper 检查 某个 MenuItem 的 Visual Parent, 一直循环到 VisualTreeHelper.GetParent 返回 Null 时. 对 ContextMenu 来说, visual root 是 System.windows.primitives.popuproot 元素, 无论如何也不会到 TextBox (TextBox.ContextMenu 只是一个属性).

MenuItem.Click="TextBox_Click" 应该放在 ContextMenu 元素里.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式