private Button GetButton(MetroWindow window, string buttonName) { var windowButtonCommands = window.GetPart <WindowButtonCommands>("PART_WindowButtonCommands"); Assert.NotNull(windowButtonCommands); var button = windowButtonCommands.Template.FindName(buttonName, windowButtonCommands) as Button; Assert.NotNull(button); return(button); }
/// <summary> /// Sets the IsHitTestVisibleInChromeProperty to a MetroWindow template child /// </summary> /// <param name="window">The MetroWindow</param> /// <param name="name">The name of the template child</param> public static void SetIsHitTestVisibleInChromeProperty <T>(this MetroWindow window, string name) where T : DependencyObject { if (window == null) { return; } var elementPart = window.GetPart <T>(name); if (elementPart != null) { elementPart.SetValue(WindowChrome.IsHitTestVisibleInChromeProperty, true); } }
/// <summary> /// Sets the WindowChrome ResizeGripDirection to a MetroWindow template child. /// </summary> /// <param name="window">The MetroWindow.</param> /// <param name="name">The name of the template child.</param> /// <param name="direction">The direction.</param> public static void SetWindowChromeResizeGripDirection(this MetroWindow window, string name, ResizeGripDirection direction) { if (window == null) { throw new ArgumentNullException(nameof(window)); } var inputElement = window.GetPart(name) as IInputElement; Debug.Assert(inputElement != null, $"{name} is not a IInputElement"); if (WindowChrome.GetResizeGripDirection(inputElement) != direction) { WindowChrome.SetResizeGripDirection(inputElement, direction); } }
/// <summary> /// Sets the IsHitTestVisibleInChromeProperty to a MetroWindow template child /// </summary> /// <param name="window">The MetroWindow.</param> /// <param name="name">The name of the template child.</param> /// <param name="hitTestVisible"></param> public static void SetIsHitTestVisibleInChromeProperty <T>(this MetroWindow window, string name, bool hitTestVisible = true) where T : class { if (window == null) { throw new ArgumentNullException(nameof(window)); } var inputElement = window.GetPart <T>(name) as IInputElement; Debug.Assert(inputElement != null, $"{name} is not a IInputElement"); if (WindowChrome.GetIsHitTestVisibleInChrome(inputElement) != hitTestVisible) { WindowChrome.SetIsHitTestVisibleInChrome(inputElement, hitTestVisible); } }