1

私はwpfとこのWebサイトにかなり慣れていません。間違いがあればご容赦ください。

私のツリービュー アイテムである HierarchicalDataTemplate は、複数のコンポーネントで構成されています。2 つの textblock 、 image 、およびレイアウト用のいくつかのスタック パネルを含むチェックボックスです。ユーザーがテキストボックス、画像、またはチェックボックスをクリックしたときにキャッチする私のMouseEventHandlerは、TreeViewItem.Selectedです。しかし、これらのコンポーネント間の小さなスペースをクリックしても、TreeViewItem.Selected はトリガーされません。

私の最初の最初の考えは、HierarchicalDataTemplate のレイアウト用のスタック パネルでイベント ハンドラーを指定する必要があるかもしれないということでした。しかし、特にスタックパネルにイベントハンドラを作成したのに、イベントが発生しませんでした。

ご案内いただけますか?

ps。IsSelected プロパティのバインディングを使用しましたが、そのプロパティを変更するように通知されませんでした

4

1 に答える 1

1

Background="Transparent"内の最上位のレイアウト コンテナーに設定しますHierarchicalDataTemplate

次の Grid は、MouseLeftButtonDown イベントを発生させません。

<Grid MouseLeftButtonDown="handler" Width="200" Height="200">
</Grid>

しかし、次のようにします。

<Grid MouseLeftButtonDown="handler" Width="200" Height="200" Background="Transparent">
</Grid>

これは、最初のケースでは背景がなく、MouseLeftButtonDown イベントを発生させるものが何もないためです。したがって、ユーザーがそのグリッド内の要素をクリックした場合にのみ、イベントが発生します。

于 2012-05-12T07:05:45.083 に答える