2013-08-20 16 views
5

ホットキーのCtrl +メニューを押して表示するコンテキストメニューがあります。したがって、私はこの関数を使用します:コンテキストメニューの場所

ContextMenu.IsOpen = true; 

私はこれをメインウィンドウで呼び出します。しかし、それはいくつかの奇妙な効果があります。

  1. 私は手動でメニューを呼び出すと、私は唯一のメニューキーを押すと、メニューalwasyが画面
  2. の中央に表示され、それは常に左上隅に表示されます。

私のメニューは、このいずれかです。どちらかdosen't仕事上のXAMLの配置を使用して

<Window.ContextMenu> 
    <ContextMenu Placement="Center"> 
     <MenuItem IsCheckable="False" Name="item2" Click="MenuItem_Click" Header="{DynamicResource countDownNotificationOn}"/> 
    </ContextMenu> 
</Window.ContextMenu> 

。したがって、私はウィンドウを

ContextMenuService.Placement="Center" 

に設定しました。しかし、動作しません。

答えて

7

あなたはContextMenuPlacementTargetプロパティを設定する必要があります。この後、ContextMenuがまだ正しく配置されていない場合、あなたはContextMenu.HorizontalOffsetContextMenu.VerticalOffsetプロパティを使用して配置を設定することができます

if (element.ContextMenu != null) 
{ 
    element.ContextMenu.PlacementTarget = element; 
    element.ContextMenu.IsOpen = true; 
} 

を。詳細については、MSDNのContextMenu.HorizontalOffset PropertyおよびContextMenu.VerticalOffset Propertyページを参照してください。

+0

ありがとうございます。私はxamlの部分に配置を入れれば十分だろうと思った。 – marcel

+0

私は助けることができてうれしいです。あなたの問題を解決するのに役立ちましたら、この質問を正しい答えとしてください。 – Sheridan

関連する問題