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>
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>
/// Sets the icon of this window.
/// </summary>

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

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

Loading…
Cancel
Save