2012-05-12 90 views
1

我對wpf和本網站相當陌生。如果我出現一些錯誤,請給我一些憐憫。嘗試在HierarchicalDataTemplate中捕獲鼠標事件

我HierarchicalDataTemplate,這是我的TreeView項,由多個組件:雙的TextBlocks,圖像和複選框與佈局一些堆棧面板。當用戶點擊文本框,圖像或複選框時,我的MouseEventHandler是TreeViewItem.Selected。但是當我點擊這些組件之間的小空間時,它不會觸發TreeViewItem.Selected。

我的第一個最初的想法是,我可能需要這對我HierarchicalDataTemplate的佈局堆疊面板上指定事件處理程序。然而,即使我專門在堆棧面板上創建了事件處理程序,它並沒有引發事件。

你能給我一些指導嗎?

ps。我使用了IsSelected屬性的綁定,但它從未通知要更改其屬性

回答

1

HierarchicalDataTemplate內設置最上面的佈局容器的Background="Transparent"

以下網格不會引發MouseLeftButtonDown事件:

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

但下列情況:

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

這是因爲在第一種情況下它沒有背景,沒有什麼引發MouseLeftButtonDown事件。因此,只有當用戶點擊該網格內的某個元素時纔會引發該事件。

+1

不知道背景屬性不能爲空(也可爲null,但已經爲鼠標事件指定)。非常感謝 – user1390518