マウスの左クリックでコンテキストメニューを開くwpfc#

user9404499

私は長方形をrectangle持っています。カスタムがありますcontextmenu(の内で行われたいくつかの簡単な変更だけControlTemplaeです<ContextMenu.Template>)。私が欲しいのは、マウスの左クリックで、contextmenuポップアップします。

rectangle1.contextmenu.isopen=true長方形のMouseDownイベントに追加してました。はい、開きますcontextmenuただし、長方形のcontextmenu上(上)に開く/ポップアップするように設定されているContextMenuService.Placement="top"ので、長方形のXAMLに追加するだけで実行できますrectangle1.contextmenu.isopen=true。長方形のMouseDownイベントがcontextmenuポップアップしますが、間違った場所にあると、それ以上上に留まらず、マウスに追従します。たとえば、長方形の右隅をクリックすると、右にcontextmenu開く/ポップアップします。これは振る舞いはとても奇妙です、なぜこれが起こっているのか分かりません。

とにかく、contextmenuマウスの左クリックで長方形の上部にあるを開くにはどうすればよいですか?

更新

奇妙なことに、どのコードにどのコードを追加してもmouseevent、コンテキストメニューの配置が失われます。たとえばMsgBox("abc")、mouseDownイベントを追加してから長方形を右クリックすると、コンテキストメニューが上に表示されません。

レクシノ

MSDNリファレンスContextMenu.Placementからわかるように

ContextMenuがFrameworkElement.ContextMenuまたはFrameworkContentElement.ContextMenuプロパティに割り当てられている場合、ContextMenuServiceは、ContextMenuが開いたときにこのプロパティのこの値を変更しますユーザーがマウスを使用してContextMenuを開くと、配置はMousePointに設定されます。ユーザーがキーボードを使用してコンテキストメニューを開くと、配置は中央に設定されます。ContextMenuの位置を変更する場合は、FrameworkElementまたはFrameworkContentElementでContextMenuService.Placementプロパティを設定します。

したがって、ContextMenuServiceを介して行わないため、PlacementとPlacementTargetを自分で変更する必要があります。

private void Mouse_Down(object sender, MouseButtonEventArgs e)
{
    var cm = ContextMenuService.GetContextMenu(sender as DependencyObject);
    if (cm==null)
    {
        return;
    }
    cm.Placement = PlacementMode.Top;
    cm.PlacementTarget = sender as UIElement;
    cm.IsOpen = true;
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

右クリックではなく左クリックでD3.jsコンテキストメニューを開く方法

分類Dev

ウィンドウ内の複数のテキストボックスWPFC#

分類Dev

テーブル行の右クリックでコンテキストメニューを開く

分類Dev

Javascript:開いたコンテキストメニューの左クリックを検出する

分類Dev

「ドキュメントを開く」の右クリックコンテキストメニューでシステムがハングする(Xubuntu)

分類Dev

コンテキストメニュー左クリック

分類Dev

TippyJS-React:右クリックでコンテキストメニューを開く方法

分類Dev

コンテキストメニューの長い左クリックQt

分類Dev

コンテキストメニューを開く際のSwiftプログラマティックUIUIContextMenuInteraction自動レイアウトエラー(groupView)

分類Dev

Javaを使用して左クリックでタスクトレイアイコンのポップアップ(メニュー)を開く

分類Dev

左クリックでQSystemTrayIconにコンテキストメニューを表示する方法

分類Dev

コンテキストメニューに「リンクを開く」メニュー項目を追加する方法

分類Dev

ユーザーコントロールのパブリックプロパティにアクセスできませんwpfc#

分類Dev

Windowsの右クリックコンテキストメニューに「ここでMSYSターミナルを開く」を追加しますか?

分類Dev

'右クリックコンテキストメニュー'コマンドのAutoHotkeyスクリプト

分類Dev

テキストを選択した後、「エクスプローラーで開く」という名前のアイテムを右クリックのコンテキストメニューに追加するにはどうすればよいですか?

分類Dev

PyGObjectでコンテキストメニューを右クリック

分類Dev

Ctrl + Menuでコンテキストメニューを開く

分類Dev

Chromeのコンテキストメニュー-2つのアクション(アイテムメニューの左/右クリック)

分類Dev

右クリックのコンテキストメニューからWindowsレジストリで2つのコマンドを実行する方法

分類Dev

マウスの右クリックでp5.jsは、描画機能ではなくブラウザのコンテキストメニューを表示します

分類Dev

TinyMCE4 CTRL +右クリックして、ブラウザのデフォルトのコンテキストメニューを開きます

分類Dev

Microstrategy + Javascriptでコンテキストメニューのクリックをトリガーする

分類Dev

クリックイベントでコンテキストメニューが開かない

分類Dev

コンボボックスwpfc#のアイテムの不完全な表示

分類Dev

ロングクリックではなくショートクリックでコンテキストメニューを表示する

分類Dev

デスクトップのコンテキストメニューに「コードで開く」と表示されるのはなぜですか?

分類Dev

コンテキスト メニューのオプションをクリックすると、剣道 UI モーダル ウィンドウを開く必要があります。

分類Dev

キーストロークで左上のコンテキストメニューを開く方法(WindowsのPuTTYの場合)

Related 関連記事

  1. 1

    右クリックではなく左クリックでD3.jsコンテキストメニューを開く方法

  2. 2

    ウィンドウ内の複数のテキストボックスWPFC#

  3. 3

    テーブル行の右クリックでコンテキストメニューを開く

  4. 4

    Javascript:開いたコンテキストメニューの左クリックを検出する

  5. 5

    「ドキュメントを開く」の右クリックコンテキストメニューでシステムがハングする(Xubuntu)

  6. 6

    コンテキストメニュー左クリック

  7. 7

    TippyJS-React:右クリックでコンテキストメニューを開く方法

  8. 8

    コンテキストメニューの長い左クリックQt

  9. 9

    コンテキストメニューを開く際のSwiftプログラマティックUIUIContextMenuInteraction自動レイアウトエラー(groupView)

  10. 10

    Javaを使用して左クリックでタスクトレイアイコンのポップアップ(メニュー)を開く

  11. 11

    左クリックでQSystemTrayIconにコンテキストメニューを表示する方法

  12. 12

    コンテキストメニューに「リンクを開く」メニュー項目を追加する方法

  13. 13

    ユーザーコントロールのパブリックプロパティにアクセスできませんwpfc#

  14. 14

    Windowsの右クリックコンテキストメニューに「ここでMSYSターミナルを開く」を追加しますか?

  15. 15

    '右クリックコンテキストメニュー'コマンドのAutoHotkeyスクリプト

  16. 16

    テキストを選択した後、「エクスプローラーで開く」という名前のアイテムを右クリックのコンテキストメニューに追加するにはどうすればよいですか?

  17. 17

    PyGObjectでコンテキストメニューを右クリック

  18. 18

    Ctrl + Menuでコンテキストメニューを開く

  19. 19

    Chromeのコンテキストメニュー-2つのアクション(アイテムメニューの左/右クリック)

  20. 20

    右クリックのコンテキストメニューからWindowsレジストリで2つのコマンドを実行する方法

  21. 21

    マウスの右クリックでp5.jsは、描画機能ではなくブラウザのコンテキストメニューを表示します

  22. 22

    TinyMCE4 CTRL +右クリックして、ブラウザのデフォルトのコンテキストメニューを開きます

  23. 23

    Microstrategy + Javascriptでコンテキストメニューのクリックをトリガーする

  24. 24

    クリックイベントでコンテキストメニューが開かない

  25. 25

    コンボボックスwpfc#のアイテムの不完全な表示

  26. 26

    ロングクリックではなくショートクリックでコンテキストメニューを表示する

  27. 27

    デスクトップのコンテキストメニューに「コードで開く」と表示されるのはなぜですか?

  28. 28

    コンテキスト メニューのオプションをクリックすると、剣道 UI モーダル ウィンドウを開く必要があります。

  29. 29

    キーストロークで左上のコンテキストメニューを開く方法(WindowsのPuTTYの場合)

ホットタグ

アーカイブ