gpt4 book ai didi

c# - WPF ListBoxItem IsMouseOver

转载 作者:行者123 更新时间:2023-11-30 17:16:41 30 4
gpt4 key购买 nike

我有一个列表框,当鼠标悬停在某个项目上时,它会显示该项目的删除按钮。问题是 IsMouseOver 会在突出显示的项目中触发大约 4 个像素,因此当将鼠标悬停在多个项目上时,删除按钮似乎不会随着您上下移动,而是在项目之间的间隙中闪烁。无论如何让 IsMouseOver 响应整个项目?

<ListBox Name="lstLength" ItemsSource="{Binding Source={StaticResource lengths}}">
<ListBox.ItemTemplate>
<DataTemplate>
<DockPanel LastChildFill="True" Height="22">
<Button DockPanel.Dock="Right" Name="btnDelete" Content="X" Tag="{Binding}" Click="DeleteLength" Visibility="Collapsed" />
<TextBlock Text="{Binding}" />
</DockPanel>

<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="btnDelete" Property="Visibility" Value="Visible" />
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

最佳答案

您的每个项目都将包含在一个 ListBoxItem 中,这就是在每个项目之间提供 ~4 像素的原因。它还提供突出显示和选择样式。您可以通过 ListBox.ItemContainerStyle 设置 listBoxItem 的样式属性(property)。将您的触发器移至项目容器,它应该会按预期工作。

关于c# - WPF ListBoxItem IsMouseOver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7077205/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com