mirror of
https://github.com/ckaczor/Common.Wpf.git
synced 2026-01-17 01:25:36 -05:00
Initial commit
This commit is contained in:
95
TextListControl/TextList.xaml.cs
Normal file
95
TextListControl/TextList.xaml.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace Common.Wpf.TextListControl
|
||||
{
|
||||
public partial class TextList : ListBox
|
||||
{
|
||||
#region Events
|
||||
|
||||
public static RoutedEvent ListItemMouseUpEvent = EventManager.RegisterRoutedEvent("ListItemMouseUp", RoutingStrategy.Bubble, typeof(MouseButtonEventArgs), typeof(TextList));
|
||||
public event MouseButtonEventHandler ListItemMouseUp;
|
||||
|
||||
public void OnListItemMouseUp(object listBoxItem, MouseButtonEventArgs e)
|
||||
{
|
||||
MouseButtonEventHandler handler = ListItemMouseUp;
|
||||
if (handler != null) handler(listBoxItem, e);
|
||||
}
|
||||
|
||||
public static RoutedEvent ListItemMouseDoubleClickEvent = EventManager.RegisterRoutedEvent("ListItemMouseDoubleClick", RoutingStrategy.Bubble, typeof(MouseButtonEventArgs), typeof(TextList));
|
||||
public event MouseButtonEventHandler ListItemMouseDoubleClick;
|
||||
|
||||
public void OnListItemMouseDoubleClick(object listBoxItem, MouseButtonEventArgs e)
|
||||
{
|
||||
MouseButtonEventHandler handler = ListItemMouseDoubleClick;
|
||||
if (handler != null) handler(listBoxItem, e);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Constructor
|
||||
|
||||
public TextList()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Hover selection events
|
||||
|
||||
private void handleListItemMouseEnter(object sender, MouseEventArgs e)
|
||||
{
|
||||
// Make sure the control has focus
|
||||
Focus();
|
||||
|
||||
// Get the list box item
|
||||
ListBoxItem listBoxItem = (ListBoxItem) sender;
|
||||
|
||||
// Select the data context
|
||||
SelectedItem = listBoxItem.DataContext;
|
||||
|
||||
// Set the cursor
|
||||
listBoxItem.Cursor = Cursors.Hand;
|
||||
}
|
||||
|
||||
private void handleListItemMouseLeave(object sender, MouseEventArgs e)
|
||||
{
|
||||
// Clear selection
|
||||
SelectedItem = null;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region List item events
|
||||
|
||||
private void handleListItemMouseUp(object sender, MouseButtonEventArgs mouseButtonEventArgs)
|
||||
{
|
||||
// Get the list box item
|
||||
ListBoxItem listBoxItem = (ListBoxItem) sender;
|
||||
|
||||
// Build the event args
|
||||
MouseButtonEventArgs eventArgs = new MouseButtonEventArgs(mouseButtonEventArgs.MouseDevice, mouseButtonEventArgs.Timestamp, mouseButtonEventArgs.ChangedButton);
|
||||
eventArgs.RoutedEvent = ListItemMouseUpEvent;
|
||||
|
||||
// Raise the event
|
||||
OnListItemMouseUp(listBoxItem, eventArgs);
|
||||
}
|
||||
|
||||
private void handleListItemMouseDoubleClick(object sender, MouseButtonEventArgs mouseButtonEventArgs)
|
||||
{
|
||||
// Get the list box item
|
||||
ListBoxItem listBoxItem = (ListBoxItem) sender;
|
||||
|
||||
// Build the event args
|
||||
MouseButtonEventArgs eventArgs = new MouseButtonEventArgs(mouseButtonEventArgs.MouseDevice, mouseButtonEventArgs.Timestamp, mouseButtonEventArgs.ChangedButton);
|
||||
eventArgs.RoutedEvent = ListItemMouseDoubleClickEvent;
|
||||
|
||||
// Raise the event
|
||||
OnListItemMouseDoubleClick(listBoxItem, eventArgs);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user