2013-09-29 45 views
0

我試圖把下面我的用戶我的ContextMenu沒有成功:文本菜單佈局

  • 我創建了一個用戶控件「Bouton_Accueil」
  • 在我的代碼我已經創建了一個文本菜單
  • 我「VE對我Bouton_Accueil
  • 添加mouseDown事件在鼠標按下我已經把 「contextMenu.IsOpen =真正的」

但文本菜單是ALW ays出現在鼠標光標附近,而不是在我的控制下。

這裏是我的代碼:

主頁:

<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把自己放在我的Control下面?

感謝

回答

2

在文本菜單本身試試這個,而不是ContextMenuService.Placement按鈕,設置放置像

  sousMenuManager.Placement = PlacementMode.Bottom; 

和鼠標按下處理程序的上下文菜單中placementtarget設爲您的grid_manager

 sousMenuManager.PlacementTarget = grid_manager; 
     sousMenuManager.IsOpen = true; 
+0

它解決了你的問題嗎? – Nitin