Browse Source

Implemented SetIgnoreTaskBarWhenMaxmimized for Win32

pull/806/head
Dan Walmsley 10 years ago
parent
commit
96c2f947d7
  1. 5
      src/Avalonia.Controls/Platform/IWindowImpl.cs
  2. 13
      src/Windows/Avalonia.Win32/WindowImpl.cs

5
src/Avalonia.Controls/Platform/IWindowImpl.cs

@ -35,6 +35,11 @@ namespace Avalonia.Platform
/// </summary> /// </summary>
void SetSystemDecorations(bool enabled); void SetSystemDecorations(bool enabled);
/// <summary>
/// When system decorations are disabled sets if the maximized state covers the entire screen or just the working area.
/// </summary>
void SetIgnoreTaskBarWhenMaximized(bool enable);
/// <summary> /// <summary>
/// Sets the icon of this window. /// Sets the icon of this window.
/// </summary> /// </summary>

13
src/Windows/Avalonia.Win32/WindowImpl.cs

@ -33,6 +33,7 @@ namespace Avalonia.Win32
private bool _trackingMouse; private bool _trackingMouse;
private bool _isActive; private bool _isActive;
private bool _decorated = true; private bool _decorated = true;
private bool _ignoreTaskBarWhenMaximized = true;
private double _scaling = 1; private double _scaling = 1;
private WindowState _showWindowState; private WindowState _showWindowState;
@ -688,7 +689,7 @@ namespace Avalonia.Win32
case WindowState.Maximized: case WindowState.Maximized:
command = UnmanagedMethods.ShowWindowCommand.Maximize; command = UnmanagedMethods.ShowWindowCommand.Maximize;
if (!_decorated) if (!_decorated && !_ignoreTaskBarWhenMaximized)
{ {
IntPtr monitor = MonitorFromWindow(_hwnd, MONITOR.MONITOR_DEFAULTTONEAREST); IntPtr monitor = MonitorFromWindow(_hwnd, MONITOR.MONITOR_DEFAULTTONEAREST);
@ -741,5 +742,15 @@ namespace Avalonia.Win32
return (int)(ptr.ToInt64() & 0xffffffff); return (int)(ptr.ToInt64() & 0xffffffff);
} }
public void SetIgnoreTaskBarWhenMaximized(bool enable)
{
_ignoreTaskBarWhenMaximized = enable;
if(_showWindowState == WindowState.Maximized)
{
ShowWindow(WindowState.Maximized);
}
}
} }
} }

Loading…
Cancel
Save