2009-12-24 57 views
0

我正在使用Syncfusion的TreeViewAdv控件。我附加了一個KeypUp事件處理程序,並且它按預期工作。每當我釋放一個密鑰,事件就會被解僱。但是,一旦我將它包裝在ScrollViewer中,事件就不會被觸發。我必須將事件處理程序移到ScrollViewer本身才能捕捉事件。我也檢查了PreviewKeyUp事件,在ScrollViewer中它被觸發並且Handled是假的。但TreeViewAdv的PreviewKeyUp根本不被觸發。KeyUp事件不是用ScrollViewer觸發的

我嘗試用StackPanel替換ScrollViewer,一切都很好。所以看起來ScrollViewer停止事件傳播到它的內容。我如何獲得在ScrollViewer中處理的事件?

回答

0

我可以看到,只有當您通過鼠標選擇項目,然後嘗試捕獲KeyUp和KeyDown事件時纔會發生這種情況。當您通過鍵盤瀏覽項目時,這些事件正確觸發,例如使用Tab鍵。

這是TreeViewAdv控件中的已知問題,Syncfusion修復了這個問題。他們承諾修復將包含在即將於2009年1月底發佈的即將發佈的Vol1 2010中。

作爲解決方法,您可以使用此代碼段來接收事件通知。

< Syncfusion:TreeViewAdv.Resources >

<樣式的TargetType = 「{x:類型syncfusion:TreeViewItemAdv}」 > < EventSetter事件= 「的MouseLeftButtonUp」 處理器= 「TreeViewItemAdv1_MouseLeftButtonUp」/ > < /樣式> </Syncfusion:TreeViewAdv.Resources>

C#中的事件處理程序

私人無效TreeViewItemAdv1_MouseLeftButtonUp(對象發件人,MouseButtonEventArgs E) { TreeViewItemAdv項=(發送者作爲TreeViewItemAdv); 如果(item!= null) { item.Focus(); }}

感謝,

馬德漢

相關問題