我有一個問題,我找不到解決方案。這裏是我的TreeView的XAML:TreeView的contextmenu出現在topnode而不是TreeViewItem的
<TreeView ItemsSource="{Binding Parents}" ContextMenu="{StaticResource TreeViewContextMenu}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Image}" />
<TextBlock Text="{Binding Name}" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
而且我也得到了這種風格在我ContentControl.Resources
:
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
<Setter Property="ContextMenu" Value="{StaticResource TreeViewItemContextMenu}" />
</Style>
當我從第一次一個人擁有右擊任何項目時,TreeViewItemContextMenu
出現,就像意。 但問題是,當我右鍵點擊topnode時,出現TreeViewContextMenu
。 我試圖做根本沒有TreeViewContextMenu
,但然後topnode也沒有ContextMenu
。
我會很高興知道,我錯過了什麼,在哪裏。提前致謝。
您可以嘗試在topnode的標題右擊?我認爲你的Topnode冠軍很短。我看到你使用StackPanel。 Stackpanel拉伸TreeViewItem,你可以點擊外面的stackpanel。 – ebattulga
我嘗試了右鍵單擊'TextBlock'和'Image'獲得相同的結果:如果我右擊頂部節點,出現的'ContextMenu'是錯誤的,但是如果我右鍵點擊任何其他節點(如果我右擊'Image '或'TextBlock'),結果是正確的。這對我來說真的很奇怪。 – Sergey