如何获取ContextMenu的所有者(来自Silverlight 4工具包)?

如何获取ContextMenu的所有者(来自Silverlight 4工具包)?

问题描述:

当我使用Silverlight 4工具包中的ContextMenu时,我想获取ContextMenu实例的所有者,但由于在ContextMenu类中不可用,所有者是内部属性。例如,我有一个矩形放在边框内。例如,当我右键单击矩形(并且出现上下文菜单)时,我需要更改矩形边框的厚度,以指示矩形是父网格的当前元素。所以我尝试使用ContextMenu.Loaded事件(我通过sender参数获取ContextMenu),但我无法获得该ContextMenu的所有者(即具有其边框的Rectangle)。我需要这个所有者来使它的边框变粗。请帮我找到办法。如何获取ContextMenu的所有者(来自Silverlight 4工具包)?

+0

也许你的意思是PlacementTarget属性。 – vorrtex 2011-03-19 10:36:32

+0

to vorrtex:我无法在Silverlight中的ContextMenu成员中找到PlacementTarget属性。它应该在Silverlight中存在,还是只存在于WPF中? – Dmitriyz 2011-03-19 14:07:09

+0

@Dmitriyz我把Silverlight和WPF混淆了。但我知道该怎么做:使用反射并阅读专用字段_owner。 – vorrtex 2011-03-19 14:49:59

我发现的唯一灵魂就是将ContextMenu的DataContext设置为后面代码中所需的元素。然后解决通过DataContext属性打开上下文菜单的元素。