問題タブ [routed-events]

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.

0 投票する
2 に答える
1735 参照

c# - WPF、一部のイベントがグリッドからユーザー コントロールに起動しない

次のようなイベントをオーバーライドする UserControl があります。

このコントロールを別の UserControl -> Grid に追加します。この Grid には MouseUp が登録されています。

そして MyParent XAML では、私は単純に次のことをしています:

MyControl の上でマウスを離すと、イベントが Grid によってキャプチャされ、MyControl にルーティングされないのはなぜですか?

MyControl クラス内で MouseUp イベントを受け取るにはどうすればよいですか?

編集 MouseDown ではすべてが期待どおりに機能しますが、MouseUp のみが機能しません...そして両方のイベントが親グリッドにも登録されているので、違いは何ですか?

EDIT2

OK、問題が見つかったと思います。MyControl を MyParent -> Grid に XAML で直接追加すると、すべて正常に動作しますが、プログラムで「MyParentInstance.Grid.Children.Add(MyControlInstance)」を追加すると、上記の問題が発生します。 .

コントロールを追加するコードは正しいですか?

ありがとう。

0 投票する
1 に答える
1523 参照

c# - WPF TreeViewが複数のアイテムでMouseEnterを発生させないようにする方法は?

ツリーを作成する次のコードがあります。そのツリーの各アイテムは、ホバーすると背景が変わるはずです。

XAML:

C# コード ビハインド:

必要なことを行う代わりに、ツリーの表示が異なります。アイテムにカーソルを合わせると強調表示されますが、何らかの理由でその親アイテムも強調表示されます。

ここに画像の説明を入力

どうすれば問題を解決できますか?

UPD1私の問題はここで説明されている問題と非常によく似ていますが、解決策を適用する方法をまだ理解していません。

0 投票する
1 に答える
1508 参照

wpf - スタイルを使用して多くのWPF要素でウィンドウのRoutedEventを処理する

次のルーティングされたイベントがあります。

私は次のXAMLを持っています:

私の目標は、ウィンドウのルーティングされたイベントによって、再利用可能な汎用スタイルを使用して、すべてのTextBlockに対してストーリーボードが起動するようにすることです。ただし、(ボタンをクリックして)ルーティングされたイベントを発生させると、何も発生しません(エラーは発生せず、何も発生しません)。何が悪いのかわからない。

これに対する正しいアプローチは何ですか?

0 投票する
1 に答える
1381 参照

wpf - 上にあるTextBlockのクリックを処理するWPF ComboBoxを作成するには?

ComboBox の上にある TextBlock があり、クリックするとコンボボックスのポップアップ (ドロップダウン) が表示されるようにします。

出来ますか?

0 投票する
1 に答える
18553 参照

c# - ユーザーコントロールからカスタムルーティングイベントを発生させるにはどうすればよいですか?

私のユーザーコントロールには、クリックするとカスタムのルーテッドイベントを発生させるボタンがあります。上げようとしましたが、MainWindow.xamlで起動されません。

UserControlのボタンのXaml:

UserControl C#コード:

MainWindow.xamlのUserControlインスタンスのXamlコード:

MainWindow.xaml.csで起動する必要があるC#コード:

0 投票する
2 に答える
255 参照

c# - 異なるビュー間でのデータの受け渡し

MVVM モデルに従って、C# で WPF アプリケーションを作成しています。MenuView、ContentView1、ContentView2、などのいくつかのビューで構成される MainWindow があります。. . 等々。

MenuView、ContentView1、ContentView2 。. .、XAML ツリー内のすべてのいとこ(気にしない) です。

MenuView はいくつかのボタンで構成されています。各ボタンには一意の ID があります。コンテンツ ビュー (すべて) は、選択された (クリックされた) ボタンのメニュー ID を受け取る必要があります。つまり、MenuView のボタンがクリックされたときに、その ID を ContentsViews1、ContentsViews2 などに渡したいとします。

ビュー間でデータを渡す最善の方法がわかりません。

MenuView に存在するすべてのメニュー ボタンにイベント ハンドラーをアタッチすることを考えました。ハンドラーは MainWindow クラス (ルート ビュー) に実装されます。このハンドラーは、すべての子ビューに対して (トンネル オプションを使用して) RoutedEvent を発生させます。

それを行うより良い方法はありますか?パフォーマンスの問題を考えると最善の方法ですか?

0 投票する
1 に答える
322 参照

c# - このルーティングされたイベントの宣言の何が問題になっていますか?

次のUserControlを作成しました。

ここで、xamlコード内でこのルーティングされたイベントを使用しようとすると、次のようになります。

コンパイル時に次のエラーが発生します:

なぜこれを取得するのですか?また、ルーティングされたイベントを機能させるにはどうすればよいですか?

0 投票する
1 に答える
2228 参照

wpf - WPFイベントシステムはイベントルートをどのように認識しますか?

RoutedEventsがどのように機能するかを理解しようとしています。ええと-私はいくつかのチュートリアルをウォークスルーし、RoutedEventsがなぜ有用であるのかとそれらがどのように機能するのかを理解しました。しかし、私が得られないことが1つあります。

RoutedEventプロパティsthを持つクラス(「MyClass」など)を作成したとしましょう。このような:

ええと-プロパティを与えるだけでは十分ではありません-だから私はEventManagerの助けを借りてRoutedEventを登録する必要があります:

わかりました-これで、WPFイベントシステムはこのイベントを認識します。そのようにすると、私が作成する各クラスには独自のRoutedEventがあります。しかし、それは私には意味がありません。

私が欲しいのは、他のクラスがMyClassのタイプではなく、同じイベントをリッスンすることです。

例:スタックパネルがあり、スタックパネル内にボタンがあります。スタックパネルをクリックすると、onClickイベントが発生します。ボタンをクリックすると、ボタンのonClickイベントが発生し、次にスタックパネルでonClickイベントが発生します。しかし、どのように?

申し訳ありませんが、問題を説明するのは難しいです。混乱しすぎています:)

ありがとう。CodeCannibal

0 投票する
2 に答える
4220 参照

wpf - RadGridViewコントロールの選択された行のクリックを検出する方法

私のWPFアプリケーションは、いくつかの画面でTelerikRadGridViewコントロールを使用しています。ユーザーがRadGridViewの行をクリックするたびに、別の画面に切り替えてその行の詳細情報を表示する必要があるという要件があります。ハンドラーをSelectionChangedイベントに接続しましたが、これは機能しますが、ユーザーが選択した行を2回クリックしても何も起こりません。選択した行は変更されないため、これは理にかなっています。

同じ行の2回目のクリックを検出して、2番目の画面を表示するにはどうすればよいですか?

トニー

0 投票する
2 に答える
3629 参照

wpf - MenuItem.Click RoutedEvent が WPF で起動しない

すべてのメニュー項目のイベントをキャプチャしようとしてContextMenuいます。そのようです:DataGridMenuItem.Click

問題は、イベントが発生しないことです。MenuItem.Clickはバブル イベントであると想定されており、ビジュアル ツリーのどこでもキャッチできるはずです。

私は何を間違っていますか?

編集:コードにハンドラーを追加すると正常に動作します。.xaml.csand allのコンストラクター内の次の行は適切です。