private void AppButton_OnContextMenuOpening(object sender, ContextMenuEventArgs e) { if (Window == null) { return; } NativeMethods.WindowShowStyle wss = Window.ShowStyle; int ws = Window.WindowStyles; // disable window operations depending on current window state. originally tried implementing via bindings but found there is no notification we get regarding maximized state MaximizeMenuItem.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMaximized && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0); MinimizeMenuItem.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMinimized && (ws & (int)NativeMethods.WindowStyles.WS_MINIMIZEBOX) != 0); if (RestoreMenuItem.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowNormal)) { CloseMenuItem.FontWeight = FontWeights.Normal; RestoreMenuItem.FontWeight = FontWeights.Bold; } if (!RestoreMenuItem.IsEnabled || RestoreMenuItem.IsEnabled && !MaximizeMenuItem.IsEnabled) { CloseMenuItem.FontWeight = FontWeights.Bold; RestoreMenuItem.FontWeight = FontWeights.Normal; } MoveMenuItem.IsEnabled = wss == NativeMethods.WindowShowStyle.ShowNormal; SizeMenuItem.IsEnabled = (wss == NativeMethods.WindowShowStyle.ShowNormal && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0); }
public void ConfigureContextMenu() { if (Window != null) { Visibility vis = Visibility.Collapsed; NativeMethods.WindowShowStyle wss = Window.ShowStyle; int ws = Window.WindowStyles; // show pin option if this app is not yet in quick launch if (Window.QuickLaunchAppInfo == null) { vis = Visibility.Visible; } miPin.Visibility = vis; miPinSeparator.Visibility = vis; // disable window operations depending on current window state. originally tried implementing via bindings but found there is no notification we get regarding maximized state miMaximize.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMaximized && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0); miMinimize.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMinimized && (ws & (int)NativeMethods.WindowStyles.WS_MINIMIZEBOX) != 0); miRestore.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowNormal); miMove.IsEnabled = wss == NativeMethods.WindowShowStyle.ShowNormal; miSize.IsEnabled = (wss == NativeMethods.WindowShowStyle.ShowNormal && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0); } }
/// <summary> /// Handler that adjusts the visibility and usability of menu items depending on window state and app's inclusion in Quick Launch. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ContextMenu_Opening(object sender, ContextMenuEventArgs e) { var Window = (DataContext as WindowsTasks.ApplicationWindow); if (Window != null) { Visibility vis = Visibility.Collapsed; NativeMethods.WindowShowStyle wss = Window.ShowStyle; int ws = Window.WindowStyles; // show pin option if this app is not yet in quick launch if (Window.QuickLaunchAppInfo == null) { vis = Visibility.Visible; } miPin.Visibility = vis; miPinSeparator.Visibility = vis; // disable window operations depending on current window state. originally tried implementing via bindings but found there is no notification we get regarding maximized state miMaximize.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMaximized && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0); miMinimize.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowMinimized && (ws & (int)NativeMethods.WindowStyles.WS_MINIMIZEBOX) != 0); miRestore.IsEnabled = (wss != NativeMethods.WindowShowStyle.ShowNormal); } }
private void UserControl_ContextMenuOpening(object sender, ContextMenuEventArgs e) { ThumbWindow.IsContextMenuOpen = true; if (_window == null) { return; } NativeMethods.WindowShowStyle wss = _window.ShowStyle; int ws = _window.WindowStyles; miMaximize.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowMaximized && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0; miMinimize.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowMinimized && (ws & (int)NativeMethods.WindowStyles.WS_MINIMIZEBOX) != 0; miRestore.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowNormal; miMove.IsEnabled = wss == NativeMethods.WindowShowStyle.ShowNormal; miSize.IsEnabled = wss == NativeMethods.WindowShowStyle.ShowNormal && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0; }
private static void SetSecondaryTaskbarVisibility(NativeMethods.WindowShowStyle shw) { bool complete = false; IntPtr secTaskbarHwnd = NativeMethods.FindWindowEx(IntPtr.Zero, IntPtr.Zero, "Shell_SecondaryTrayWnd", null); // if we have 3+ monitors there may be multiple secondary taskbars while (!complete) { if (secTaskbarHwnd != IntPtr.Zero) { NativeMethods.ShowWindowAsync(secTaskbarHwnd, shw); secTaskbarHwnd = NativeMethods.FindWindowEx(IntPtr.Zero, secTaskbarHwnd, "Shell_SecondaryTrayWnd", null); } else { complete = true; } } }
private void ContextMenu_Opening(object sender, RoutedEventArgs e) { ApplicationWindow window = getWindow(); if (window == null) { return; } Visibility pinVisibility = Visibility.Collapsed; Visibility singleWindowVisibility = _isGroup ? Visibility.Collapsed : Visibility.Visible; NativeMethods.WindowShowStyle wss = window.ShowStyle; int ws = window.WindowStyles; // show pin option if this app is not yet in quick launch if (ParentTaskbar._appGrabber.QuickLaunchManager.GetQuickLaunchApplicationInfo(window) == null) { pinVisibility = Visibility.Visible; } miPin.Visibility = pinVisibility; miPinSeparator.Visibility = pinVisibility; // show/hide single window controls miMaximize.Visibility = singleWindowVisibility; miMinimize.Visibility = singleWindowVisibility; miRestore.Visibility = singleWindowVisibility; miMove.Visibility = singleWindowVisibility; miSize.Visibility = singleWindowVisibility; miSingleWindowSeparator.Visibility = singleWindowVisibility; if (!_isGroup) { // disable window operations depending on current window state. originally tried implementing via bindings but found there is no notification we get regarding maximized state miMaximize.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowMaximized && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0; miMinimize.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowMinimized && (ws & (int)NativeMethods.WindowStyles.WS_MINIMIZEBOX) != 0; miRestore.IsEnabled = wss != NativeMethods.WindowShowStyle.ShowNormal; miMove.IsEnabled = wss == NativeMethods.WindowShowStyle.ShowNormal; miSize.IsEnabled = wss == NativeMethods.WindowShowStyle.ShowNormal && (ws & (int)NativeMethods.WindowStyles.WS_MAXIMIZEBOX) != 0; } }
/// <summary> /// Make the referenced Internet Explorer full screen, minimized, maximized and more. /// </summary> /// <param name="showStyle">The style to apply.</param> public virtual void ShowWindow(NativeMethods.WindowShowStyle showStyle) { NativeMethods.ShowWindow(hWnd, (int) showStyle); }
public void ShowWindow(NativeMethods.WindowShowStyle showStyle) { throw new NotImplementedException(); }
internal static extern bool ShowWindow(IntPtr hWnd, NativeMethods.WindowShowStyle nCmdShow);