0

Syncfusion の TreeViewAdv コントロールを使用しています。それに KeypUp イベント ハンドラーをアタッチすると、期待どおりに機能しました。キーを離すたびにイベントが発生します。ただし、ScrollViewer でラップすると、イベントは発生しません。イベントをキャッチするには、イベント ハンドラーを ScrollViewer 自体に移動する必要があります。また、PreviewKeyUp イベントを確認しました。ScrollViewer で発生し、Handled は false です。ただし、TreeViewAdv の PreviewKeyUp はまったく発生しません。

ScrollViewer を StackPanel に置き換えようとしましたが、すべて問題ありません。そのため、ScrollViewer はそのコンテンツへのイベントの伝播を停止しているようです。ScrollViewer 内でイベントを処理するにはどうすればよいですか?

4

1 に答える 1

0

これは、マウスで項目を選択し、KeyUp および KeyDown イベントをキャッチしようとした場合にのみ発生することがわかりました。これらのイベントは、Tab キーを使用するなど、キーボードのみでアイテムをナビゲートするときに適切に発生します。

これは TreeViewAdv コントロールの既知の問題であり、Syncfusion はこれを修正しました。彼らは、2009 年 1 月末に予定されている次期リリース Vol1 2010 に修正が含まれることを約束しました。

回避策として、このコード スニペットを使用してイベント通知を受け取ることができます。

<Syncfusion:TreeViewAdv.Resources>

<Style TargetType="{x:Type syncfusion:TreeViewItemAdv}"> <EventSetter Event="MouseLeftButtonUp" Handler="TreeViewItemAdv1_MouseLeftButtonUp"/> </Style> </Syncfusion:TreeViewAdv.Resources>

C# のイベント ハンドラー

private void TreeViewItemAdv1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { TreeViewItemAdv item= (送信者は TreeViewItemAdv として); If(item != null) { item.Focus(); } }

ありがとう、

マダン

于 2010-01-11T11:26:59.520 に答える