gpt4 book ai didi

c# - Wpf 在拖放时突出显示 ListViewItem

转载 作者:太空狗 更新时间:2023-10-30 01:24:00 24 4
gpt4 key购买 nike

在我的 WPF 应用程序中,我需要突出显示 ListViewItem 每当有东西掉落在它上面时。我覆盖 ListViewItem 的 OnDragEnter、OnDragOver、OnDragLeave 等以应用我的样式(比如更改背景)。它工作正常。但是在 ListView 项目上放置一些东西后,当我单击 ListView 项目时,选择和鼠标悬停效果无法正常工作。我该如何解决这个问题?

public class CustomListViewItem : ListViewItem
{
protected override void OnDragOver(System.Windows.DragEventArgs e)
{
this.Background = Brushes.Green;
base.OnDragOver(e);
}

protected override void OnDragEnter(System.Windows.DragEventArgs e)
{
this.Background = Brushes.Green;
base.OnDragEnter(e);
}

protected override void OnDragLeave(System.Windows.DragEventArgs e)
{
if (!this.IsSelected)
{
this.Background = Brushes.Transparent;
this.BorderBrush = Brushes.Transparent;
}
base.OnDragLeave(e);
}
}

最佳答案

在执行 DragDrop 之后,您的本地值根据样式优先于选择和鼠标悬停效果(参见 Dependency Property Setting Precedence List)。

尝试 DependencyObject.ClearValue Method :

protected override void OnDragLeave(System.Windows.DragEventArgs e)
{
if (!this.IsSelected)
{
this.ClearValue(BackgroundProperty);
this.ClearValue(BorderBrushProperty);
}
base.OnDragLeave(e);
}

关于c# - Wpf 在拖放时突出显示 ListViewItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10540074/

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