問題タブ [routed-commands]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
wpf - WPF ルーティング コマンド ディスパッチ メカニズムを書き換える方法
ある方法で WPF コマンド ルーティングを拡張して、コマンドをフォーカスされたフィールドで呼び出すことができるかどうかを最初に確認できますか? そのためのフックはありますか?それが機能するかどうかわからないかもしれませんが、ネット上のどこかで似たようなものを見たので、リンクを惜しみませんか?
抽象的な例
たとえば、サイド パネルを備えたテキスト エディタを作成している場合、パネルにフォーカスがあります。Ctrl+G を押すと、パネルにコマンド バインディングとフォーカスがあるため (通常の WPF 動作)、いくつかのコマンドが呼び出されます。また、Ctrl+H を押しても、今回はパネルに呼び出されたコマンドのコマンド バインドがありません。この場合、ルーティング エンジンをテキスト エディターに切り替えて、同じコマンドをそこに吹き込みたいと思います。
実際の例
[貼り付け] というメニュー項目がありますが、フォーカスはサイド パネルにあります。メニューを押すと、パネルにバインドされたコマンドが実行されます。パネルにバインドされた適切なコマンドがないとします。この場合、テキスト エディターに貼り付けたいと思います。
コード
このコードは、多かれ少なかれこのシナリオを表しています。Ctrl+H を押して CommandBinding_Executed_1 を実行したい
Window1.xaml
Window1.xaml.cs
c# - WPFルーティングコマンドを手動で実行する
RoutedUICommand
次のように、コードビハインドからカスタムを手動で実行する場合:
最初にメソッドを呼び出す必要がありますかCanExecute
、それともメソッド内ですでに実行されていExecute
ますか?
wpf - ルーティングされたコマンドをトリガーする入力バインディングを取得するにはどうすればよいですか?
コマンドが割り当てられたメニュー項目 (MyCommands.Indent) と 2 つのテキスト領域があり、どちらも MyCommands.Indent をトリガーする入力バインディングを持っています。難しいのは、入力バインディングにはさまざまなジェスチャがあり、これらのジェスチャを MenuItem で変更したいということです。
私の質問は次のとおりです。このルーティングされたコマンドをトリガーする入力バインディングを取得するにはどうすればよいですか?
c# - ルーティングされたコマンドをWPFのチェックボックスに追加できません
カスタムRoutedCommandは、一部のmenuItemによって使用されます。チェックボックスで同じRoutedCommandを使用したい:
コンパイラーはエラーを出しませんが、アプリを起動すると、コマンド値をnullにできないため、SwitchContextCommandをcheckBox.Commandにアタッチできないという例外が発生します。
このコマンドはメニューで正常に機能します。
最初の質問:これは可能ですか?CheckBoxクラスにはCommandプロパティとCommandParametersプロパティが含まれているので、これについては自分で答えることができると思います。可能だと思います。
2番目:それはどのように機能しますか?MenuItemsを使用すると、メニューが表示されたときにCanExecuteが呼び出されます。常に表示されるチェックボックスはどうなりますか?クリック時に暗黙的に呼び出されますか?
第三に:なぜそれが機能しないのですか?
ありがとう!
wpf - これはRoutedCommandの使用に適していますか?
2つのContentControlsがあるWPFページがあります。両方のContentControlには画像があり、一方は他方よりもはるかに小さいです。大きい画像の上にマウスを置くと、小さい画像にズームインビューが表示されます。これに非常によく似たもの:http://www.trekbikes.com/us/en/bikes/urban/soho/soho/。
大きい画像コントロールに、実際に画像を含むものを送信してもらいたいと思います。小さい画像コントロールがそれを取得して表示します。これは、RoutedCommandsを利用するのに適した場所でしょうか?そのような画像を渡すことはできますか?
wpf - 異なるコントロールで同じ RoutedCommand を使用する方法は?
menuItem (window.xaml 内) と userControl (foo.xaml 内) の 2 つの個別の UI 要素が個別のファイルに含まれています。
どちらもまったく同じロジックを持ちます。条件が一致し、同じメソッドを呼び出す場合にのみ有効になります。このロジックをコーディングするには、RoutedCommandsを使用します。
CanExecuteとExecutedで同じ条件で、各ファイルで 2 つの異なる RoutedCommands を使用できます。できます。
DRY ルールに従い、routedCommand と付属のメソッドを外部化するようにコードを改善したいと考えています。これは両方のファイルのバインディングです:
これは TestRoutedCmmand.cs です:
私がそうすると、コンパイラはこのエラーを報告します:
(元のメッセージは英語ではないため、翻訳は正確ではない可能性があります)
外部メソッドはサポートされていないようですが、何かを見逃していないと確信しています。私のメソッドが静的であるという事実なのだろうか?
私のメソッドを外部化する別の方法はありますか、それとも他の 2 つだけを呼び出すこれら 4 つのメソッドにとどまらなければなりませんか?
注:私のプロジェクトでは、これは30以上の複製されたroutedCommandメソッドで、他に2つしか呼び出していません...これが私をとても悩ませている理由です。
ありがとう。
wpf - ICommand と RoutedCommand
Command
ボタンプロパティをカスタム コマンドにバインドしてみましょう。
いつ実装ICommand
し、いつから派生する必要がありRoutedCommand
ますか? RoutedCommand が ICommand を実装していることがわかります。
どのような場合に実装する必要がありICommand
ますか? MVVMモデルはどうですか?この目的にはどちらが適していますか?
wpf - RoutedUICommandsをインターセプトするWPFTextBox
WPFアプリケーションでUndo/Redoキーボードショートカットを機能させようとしています(コマンドパターンを使用して独自のカスタム機能を実装しています)。ただし、TextBox
コントロールが「元に戻す」RoutedUICommandをインターセプトしているようです。
UIツリーのルートでCtrl+Zをキャッチできるように、これを無効にする最も簡単な方法は何ですか?TextBox
可能であれば、アプリケーションのそれぞれに大量のコード/XAMLを入れないようにしたいと思います。
以下に、問題を簡単に示します。
wpf-controls - WPFテキストボックスでCopyコマンドをオーバーライドするには?
WPF TextBox の RoutedUICommand "Copy" の動作をオーバーライドしたいと思います。
TextBox を継承する新しい TextBoxExtended クラスを作成しなくても可能ですか?
私はその点に達しましたが、今は少し迷っています。
続行する方法はありますか?