1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- using PDF_Master.Views.HomePanel.RecentFiles;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Input;
- using System.Windows.Media;
- namespace PDF_Master.Views.HomePanel
- {
- /// <summary>
- /// HomeGuidContent.xaml 的交互逻辑
- /// </summary>
- public partial class HomeGuidContent : UserControl
- {
- public HomeGuidContent()
- {
- InitializeComponent();
- }
- private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
- {
- e.Handled = true;
- var eventArg = new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta)
- {
- RoutedEvent = UIElement.MouseWheelEvent,
- Source = sender
- };
- var listView = FindChild<ListView>(sender as DependencyObject);
- listView.RaiseEvent(eventArg);
- }
- private static T FindChild<T>(DependencyObject parent) where T : DependencyObject
- {
- if (parent == null) return null;
- var foundChild = default(T);
- var childCount = VisualTreeHelper.GetChildrenCount(parent);
- for (var i = 0; i < childCount; i++)
- {
- var child = VisualTreeHelper.GetChild(parent, i);
- if (child is T t)
- {
- foundChild = t;
- break;
- }
- foundChild = FindChild<T>(child);
- if (foundChild != null) break;
- }
- return foundChild;
- }
- private void Recentlist_MouseDown(object sender, MouseButtonEventArgs e)
- {
- //Windows:最近文件列表补充点击空白处取消选中;移除Esc取消选中逻辑
- if (sender is RecentFilesContent recentFilesContent)
- {
- if (recentFilesContent.GridRecentFilesList.Visibility == Visibility.Visible)
- {
- var point = e.GetPosition(recentFilesContent.GridRecentFilesList);
- var result = VisualTreeHelper.HitTest(recentFilesContent.GridRecentFilesList, point);
- if (result != null)
- {
- if (recentFilesContent.GridRecentFilesList.SelectedIndex != -1)
- {
- recentFilesContent.GridRecentFilesList.SelectedIndex = -1;
- }
- }
- }
- else if (recentFilesContent.RecentFilesList.Visibility == Visibility.Visible)
- {
- var point = e.GetPosition(recentFilesContent.RecentFilesList);
- var result = VisualTreeHelper.HitTest(recentFilesContent.RecentFilesList, point);
- if (result != null)
- {
- if (recentFilesContent.RecentFilesList.SelectedIndex != -1)
- {
- recentFilesContent.RecentFilesList.SelectedIndex = -1;
- }
- }
- }
- }
- }
- }
- }
|