You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.0 KiB
C#
71 lines
2.0 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Media;
|
|
using System.Windows;
|
|
|
|
namespace Txgy.Controls
|
|
{
|
|
|
|
public class myListBox : System.Windows.Controls.ListBox
|
|
{
|
|
private ListBoxItem _lastSelectedItem;
|
|
protected override DependencyObject GetContainerForItemOverride()
|
|
{
|
|
return new myListBoxItem();
|
|
}
|
|
//protected override void OnSelectionChanged(SelectionChangedEventArgs e)
|
|
//{
|
|
// //base.OnSelectionChanged(e);
|
|
|
|
// if (this.SelectedItem == null && _lastSelectedItem != null)
|
|
// {
|
|
// // Restore the last selected item if nothing is selected
|
|
// _lastSelectedItem.IsSelected = true;
|
|
// }
|
|
// else
|
|
// {
|
|
// // Update the last selected item
|
|
// _lastSelectedItem = this.SelectedItem as ListBoxItem;
|
|
// }
|
|
//}
|
|
}
|
|
public class myListBoxItem : System.Windows.Controls.ListBoxItem
|
|
{
|
|
protected override void OnSelected(System.Windows.RoutedEventArgs e)
|
|
{
|
|
DependencyObject dep = (DependencyObject)e.OriginalSource;
|
|
|
|
while ((dep != null) && !(dep is ListBoxItem))
|
|
{
|
|
dep = VisualTreeHelper.GetParent(dep);
|
|
}
|
|
|
|
if (dep == null)
|
|
return;
|
|
|
|
//ListBoxItem item = (ListBoxItem)dep;
|
|
|
|
//if (item.IsSelected)
|
|
//{
|
|
// item.IsSelected = !item.IsSelected;
|
|
// //e.Handled = true;
|
|
//}
|
|
base.OnSelected(e);
|
|
}
|
|
//protected override void OnMouseLeave(System.Windows.Input.MouseEventArgs e)
|
|
//{
|
|
// // 防止离开后状态改变
|
|
// if (IsSelected)
|
|
// {
|
|
// IsSelected = true;
|
|
// }
|
|
|
|
// base.OnMouseLeave(e);
|
|
//}
|
|
}
|
|
}
|