コンポーネントのラインナップQuadコンテキストメニュー
-
22-08-2019 - |
質問
N.Bこの質問を更新しまし読みま
こんにちは,
作りたいカスタムコンテキストメニューは4つのサブメニュー、そしてそれぞれの領域(左上、右下は左、右下)です。同様に、ニンテンドー3dsのスタジオ。
このようにのんびりとっての課題これまで:-をカスタムコンポーネントのラインナップ制御からContextMenu[1]
-を宣言するのに4依存性ContextMenu、これらがメニューの表示で設定できー.
-AddOwnerのContextMenu.IsOpenProperty、性変更通知です。
-時のIsOpenの中で特定のプロパティに変更セットのIsOpenの4子どもの文脈でメニューを取り揃えております。
使用ContextMenuServiceセット、縦方向と横方向のオフセットのサンプルでは、コンテキストのメニューに表示される各領域;結合実際の高さと幅特性を計算し、オフセットなのです。
[1]から派生する必要はありコンテキストメニュー限を割り当てることはできませんのでContextMenuの物件です。
この が表示され 仕事が課題となっているメニュー ない ウィンドウを開いて閉鎖としては外部のメニューが思用Reflector.NET 見頃です。
これは私の初めてのカスタムコンポーネントのラインナップを制御することんと書;ということです。
提案/かについて話し合うことをQuadコンテキストメニュー?
解決 2
更新
OK。後に遊びカスタムを制御しているものは 作 ります。すべてのメニューに現在開きます。
んどろ風mikiモデルを作ってみを行います。
作成されたカスタム制御の名QuadContextMenuから派生するContextMenu,オーバーライドのデフォルトのスタイル。
-スタイルの制御は4ポップアップのプリミティブ:
-それぞれPART_名を取得しますを参照していた時にOnApplyTemplate.
-それぞれの子QuadMenu、カスタム制御から派生するMenuBase.
-それぞれそのVerticleOffsetとHorizontalOffset性質に結合すActualHeightとActualWidthの子[2]となります。
QuadMenuスタイル/テンプレート制御:
-はクラシックボーダーとdockpanel、国境をtextblockのメニューの名前です。
[2]上位のメニュー、クアッド:-TopLeftが負のオフセットの実際の幅と高さ
-TopRightが負のオフセットの高さ
-BottomLeftが負のオフセットの高さ
-BottomRightは ない オフセットとはで元の場所
新しい問題の/問題
これらは次の課題はこの制御:
1.現在のキーボードやマウスはロック/撮影による最初のメニューを中心にその他によりご利用頂けないで推移しました。いことを意味しますを使用することはできますか1日のメニューを取り揃えております。
2.フリップのメニュー項目のようにTopLeft/BottomLeftのサブメニューを開き、左手側となります。
しかし、私ためのメニュー項目を上書きするGetContainerForItemOverride方法を返しQuadMenuItem.QuadMenuItemカスタム制御からMenuItem.私はこのが失わなければならなかったのは、サブメニューサブメニューの機能の機能は悔いが残っています。
いずのキュぎ/うこれらの問題への取り組みをいくお願いいたします。Dん
他のヒント
私はを考えることができる二つのアプローチにもつながっていく必要がクリーンでの仕事がございました。
アプローチ1
使用するコンテキストメニューが設定テンプレートのようにContextMenuうかを示を制御することが開くのです。もぎができるようにこれらの二次メニューを飲まないのです。この場だが、元の問題です。
アプローチ2
うに設定しますContextMenu.StaysOpenをfalseにしてからの制御だけでなく、メニューの終了の理由を教えてください。