我正在尝试将我的ContextMenu放在UserControl下面但没有成功:
但contextMenu总是出现在鼠标光标附近,而不是在我的控制之下。
这是我的代码:
主页:
<pm:Bouton_Accueil x:Name="grid_manager" ContextMenuService.Placement="Bottom" Margin="0,0,0,0" Grid.Column="0">
</pm:Bouton_Accueil>
在我的代码中:
ContextMenu sousMenuManager = new System.Windows.Controls.ContextMenu();
sousMenuManager.Style = (Style)FindResource("StyleContext");
sousMenuManager.Width = 133;
this.grid_manager.ContextMenu = sousMenuManager;
ContextMenuService.SetPlacement(this.grid_manager, System.Windows.Controls.Primitives.PlacementMode.Bottom);
public void MouseDown(object sender, RoutedEventArgs e)
{
sousMenuManager.IsOpen = true;
}
我遇到与此帖相同的问题:How can I tell a ContextMenu to place itself relatively to its control and not the cursor?
如何告诉我的ContextMenu将自己置于我的控件之下?
由于
答案 0 :(得分:3)
试试这个,而不是按钮上的ContextMenuService.Placement,在上下文菜单上设置放置
sousMenuManager.Placement = PlacementMode.Bottom;
并在mousedown处理程序中将上下文菜单的placementtarget设置为grid_manager
sousMenuManager.PlacementTarget = grid_manager;
sousMenuManager.IsOpen = true;