/// <summary> /// 切换光标处理 /// </summary> /// <param name="d"></param> /// <param name="e"></param> static void OnCursorChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { CoreCursorType oldCursor = (CoreCursorType)e.OldValue; CoreCursorType newCursor = (CoreCursorType)d.GetValue(CursorProperty); if (oldCursor == CoreCursorType.Arrow) { var handler = new CursorDisplayHandler(); handler.Attach((UIElement)d); SetCursorDisplayHandler(d, handler); } else { var handler = GetCursorDisplayHandler(d); if (newCursor == CoreCursorType.Arrow) { handler.Detach(); SetCursorDisplayHandler(d, null); } else { handler.UpdateCursor(); } } }
/// <summary> /// 设置光标Handler /// </summary> public static void SetCursorDisplayHandler(DependencyObject d, CursorDisplayHandler value) { d.SetValue(CursorDisplayHandlerProperty, value); }