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 { /// /// HomeGuidContent.xaml 的交互逻辑 /// 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(sender as DependencyObject); listView.RaiseEvent(eventArg); } private static T FindChild(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(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; } } } } } } }