/// <summary> /// 添加热键绑定; /// </summary> /// <param name="uiObjectProvider"></param> /// <param name="command"></param> /// <param name="key"></param> /// <param name="modifier"></param> public static void AddKeyBinding(this IUIObjectProvider uiObjectProvider, ICommand command, Key key, ModifierKeys modifier = ModifierKeys.None) { if (uiObjectProvider.UIObject is UIElement uiElement) { uiElement.InputBindings.Add(new KeyBinding(command, key, modifier)); } }
void UninstallScale() { zoomable = null; uiObjectProvider = null; if (zoomElement == null) { return; } if (metroWindow != null) { metroWindow.WindowDpiChanged -= MetroWindow_WindowDpiChanged; } zoomElement.Loaded -= ZoomElement_Loaded; zoomElement.PreviewMouseWheel -= ZoomElement_PreviewMouseWheel; foreach (var b in commandBindings) { zoomElement.CommandBindings.Remove(b); } foreach (var b in keyBindings) { zoomElement.InputBindings.Remove(b); } zoomElement = null; ResetBindings(); }
public void InstallZoom(IUIObjectProvider provider, FrameworkElement?elem) { var zoomable = (provider as IZoomableProvider)?.Zoomable ?? provider as IZoomable; if (!(zoomable is null)) { InstallScaleCore(provider, zoomable); }
void InstallScaleCore(IUIObjectProvider provider, IZoomable zoomable) { UninstallScale(); if (zoomable == null) { return; } this.zoomable = zoomable; SetZoomValue(zoomable.ZoomValue, force: true); }
public void InstallZoom(IUIObjectProvider provider, FrameworkElement elem) { var zoomable = (provider as IZoomableProvider)?.Zoomable ?? provider as IZoomable; if (zoomable != null) { InstallScaleCore(provider, zoomable); } else { InstallScaleCore(provider, elem); } }
void InstallScaleCore(IUIObjectProvider provider, FrameworkElement elem) { UninstallScale(); zoomElement = elem; uiObjectProvider = provider; if (zoomElement == null) { return; } zoomElement.PreviewMouseWheel += ZoomElement_PreviewMouseWheel; zoomElement.CommandBindings.AddRange(commandBindings); zoomElement.InputBindings.AddRange(keyBindings); SetZoomValue(ZoomValue, force: true); }