1
这可能很简单。不知道,我很惊讶,我无法找到解决方案。现在我的周末开始时,我可能不在意了:P。WPF - 访问MouseOver上显示的控件
目标:在TreeView
,每个项目都有一个CheckBox
和Content
。此外,还可以选择删除TreeViewItem
,该选项仅在MouseOver
上显示。
问题是当我将鼠标悬停在项目上时,它触发Button
的Visibility
显示出来。现在,当我尝试将鼠标移动到Button
删除时,它现在得到Hidden
,因为IsMouseHover
是false
。
下面是示例:
<TreeView Grid.Column="2" Name="trvMenu" HorizontalAlignment="Stretch" Margin="20" MaxHeight="200" ScrollViewer.VerticalScrollBarVisibility="Auto">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:TestPlan}" ItemsSource="{Binding Plans}">
<StackPanel Orientation="Horizontal">
<CheckBox Margin="5"/>
<TextBlock Text="{Binding Title}" Margin="5"/>
<Button Height="20" Width="20" x:Name="deletebutton" Margin="5" Visibility="Collapsed">
<Image Source="/Images/cross.png" Height="20"/>
</Button>
</StackPanel>
<HierarchicalDataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="deletebutton" Property="Visibility" Value="Visible" />
</Trigger>
</HierarchicalDataTemplate.Triggers>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
我需要访问Button
上MouseOver
有没有简单的方法来解决这个问题?