問題タブ [routedevent]
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 - MultiTrigger でルーティング イベントを使用できますか?
WPF は、ルーティングされたイベントに応答するトリガーの使用をサポートしていますが、条件が満たされた場合にのみ使用できますか?
たとえば、WPF は、イベント トリガーを介したルーティング イベントでのトリガーをサポートしています。すなわち:
ただし、特定の条件が満たされた場合にのみトリガーがオフになるトリガーを探しています。通常、MultiTrigger は複数の条件を満たすために使用します。すなわち:
ただし、MultiTrigger または MultiDataTrigger は、ルーティング イベントでのトリガーをサポートしていないようです。これら 2 つのルーティング イベントと条件の概念を XAML で混在させることはできますか?
wpf - ルーティングされたイベントはWPFで弱いですか
WPFでルーティングされたイベントは、それらに接続されているハンドラーへの強力な参照を格納しますか?
c# - 閉じるときにwpfウィンドウをフェードアウトする
アプリケーションでウィンドウをフェードイン/フェードアウトしたい。
でフェードインが発生しWindow.Loaded
、閉じるときにフェードアウトしたかった (Window.Closed
またはWindow.Closing
)。フェードインは完全に機能しますが、プロパティWindow.Closing
の値として許可されていません。閉じるには
何を使用すればよいですか?RoutedEvent
RoutedEvent
でエラーが発生します。値 'Window.Closing' をプロパティ 'RoutedEvent' に割り当てることはできません。イベント名が無効です。
c# - リフレクションを介してルーティングされたイベントハンドラーを削除しますか?
背景:私はWPFとC#(3.5)を使用しており、コンパイル済みアセンブリの一部であるフォーム/ウィンドウ/ユーザーコントロールをユーザーが表示できるようにするアプリに取り組んでいます。表示すると、任意のコントロール(ボタン、テキストボックス、さらにはラベル)をクリックできるはずです。コントロールの横に小さなポップアップエディタが表示され、そのコントロールのツールチップやhelpIDなどを入力できます。
その長所と短所:WPFの基本的なデザインビューを模倣する必要があります。つまり、少なくとも次のことを行う必要があります。
- 特定のアセンブリからユーザーコントロール/ウィンドウをロードします(問題ありません)
- ユーザーコントロール/ウィンドウをインスタンス化します(問題ありません)
- すべてのコントロールのサブスクライブされたすべてのEventHandlerをクリアします
- 自分の「ShowEditorPopup」EventHandlerを各コントロールに割り当てます(問題はないはずです)
まず、誰かがより簡単またはより良いルートについて提案があれば、私に知らせてください。(どうやら、WPF用のDesignHostの種類のコンポーネントはないので(.NET 2を読んだように)、それはありません。)
私は太字の項目で立ち往生しています-サブスクライブされたEventHandlerをクリアします。いくつかを掘り下げてReflectorに入った後、危険なコードのこのクールなチャンクを思いつきました(ここでは、XAMLで定義されたsomeButtonと呼ばれる単一のボタンのすべてのEventHandlerを取得しようとしています):
コードは次のとおりです(必要に応じてsomeButton_Click eventHandlerから実行できます)。
Invokeまで機能し、次を返します。オブジェクトがターゲットタイプと一致しません(つまり、パラメータまたはターゲットオブジェクトが混乱しています)。私はあなたがこれを解決できることを発見しました:
GetEventHandlers MethodInfoにウォッチを設定すると、見栄えが良くなります。Invokeを呼び出したときに渡すものが気に入らないだけです。
RoutedEventハンドラーのリストを取得する方法の最後のステップにいるように感じます(WPF RoutedEventsでは機能しない古き良きGetInvocationList()のようです)。そこから、各コントロールからこれらのハンドラーを削除し、イベントのないフォームを作成して、独自のイベントを追加するのは簡単です。
手がかりはありますか?繰り返しますが、タスク全体を実行するためのより良い/より簡単な方法がある場合は、私に知らせてください:)
wpf - UserControl からの RoutedEvent を処理する WPF
VS によって生成されたデフォルトの UserControl があり、TextBlock のみが追加されます。
ここで、このコントロールのいくつかのインスタンスを親コントロールの WrapPanel にコード ビハインドから動的に配置します。MyControl インスタンスからのすべての左マウス ボタン クリックを処理したいと考えています。私は次のコードを持っています:
イベント ハンドラーで何らかのアクションを実行すると、それが機能します。ただし、XAML ファイルを編集すると、次のエラーが表示されます。これを修正する方法は?
wpf - WPF CUSTOM tunel routedeventを作成するには?
親コントロールから子コントロールへのトンネル ルーティング イベント トンネリングの簡単な例が必要です。
(これは実際のコードではありません) -- 実際、深く掘り下げるほど、XAML が間違っていると思います -- おそらく、子ノードの XAML でトンネル化されたイベントにサインアップするべきではありません (わかりませんか?)
シンプルで簡潔な例が役に立ちます。
ありがとう、アラン
wpf - カスタム ルーティング イベントが失敗しました。
私のアプリケーションは次のようになります。
コントロール (4) には、フレーム (2) で処理するカスタム ルーティング イベントがあります。
行事:
そしてフレーム XAML:
正常にコンパイルされますが、次のことが起こります。
「PreviewArtistLinkClicked」という名前のプロパティの DependencyProperty または PropertyInfo が見つかりません。
c# - UIオートメーションを使用してプログラムでコンテキストメニューを開きますか?
UI オートメーションを使用して右クリック コンテキスト メニューを実装しようとしています。UI オートメーションにはネイティブの右クリック パターンがないため、ExpandCollapse プロバイダーをリストビューの AutomationPeer クラスに追加し、展開と折りたたみをコンテキスト メニューの開閉にマッピングします。
私の質問は、プライベート コンストラクターを使用してクラスをインスタンス化しようとすることを伴わない、コンテキスト メニューを呼び出すためのより良い方法はありますか? Shift-F10 で SendKeys を使用できません。PopupControlService を使用したいのですが、内部としてタグ付けされています。
私のひどい回避策:
wpf - Surface コントロールの OnContactDown イベントに遅延を追加します
Controls.PreviewContactDown、PreviewContactUp、および PreviewContactChanged イベントを使用して、Surface に配置、削除、および移動されるタグ付きアイテムをキャプチャします。これは、Surface に付属する Simulator アプリケーションでうまく機能します。
実際のサーフェスでは、タグ付けされたアイテムをあまりにも速く動かした場合、カメラは実際にタグの焦点を失い、タグが取り外されたと想定し、動きが止まったときに再度キャプチャします。それは私たちのクライアントにとってかなり貧弱な経験を提供します.
私が提案しているのは、タグ付けされたアイテムイベントに応答する新しいイベントをオーバーライドまたは作成する方法ですが、遅延が発生するまでイベントハンドラーを起動しません...つまり、「ContactUp」が起動された場合、100ミリ秒待ってから実行しますイベントハンドラ。理想的には、別の添付プロパティを使用してこれらのイベント ハンドラーを定義できるようにするだけです。つまり、
また、イベント ハンドラーの代わりに ICommand オブジェクトを使用できるようにできれば、さらに優れたものになります。
wpf - C#/WPF - UIElement ではない WPF クラスの RoutedEvent
何か重大なことが発生したことを通知する必要があるクラスがあります。クラスは WPF プロジェクトにありますが、この特定のクラスはルックレスです (UIElement
直接的または間接的に から継承しません)。
通常、RoutedEvent
この機能を取得するために を登録するだけですが、このクラスには AddHandler も RemoveHandler も含まれていないため、機能させることができません。動作を取得する別の方法を知っている人はいRoutedEvent
ますか?