Пример #1
0
        /// <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();
                }
            }
        }
Пример #2
0
 /// <summary>
 /// 设置光标Handler
 /// </summary>
 public static void SetCursorDisplayHandler(DependencyObject d, CursorDisplayHandler value)
 {
     d.SetValue(CursorDisplayHandlerProperty, value);
 }