Browse Source

add TransparencyLevel property to TopLevel

pull/3962/head
Dan Walmsley 6 years ago
parent
commit
cbd89289ab
  1. 6
      src/Avalonia.Controls/Platform/ITopLevelImpl.cs
  2. 18
      src/Avalonia.Controls/TopLevel.cs

6
src/Avalonia.Controls/Platform/ITopLevelImpl.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Avalonia.Controls;
using Avalonia.Input;
using Avalonia.Input.Raw;
using Avalonia.Rendering;
@ -106,5 +107,10 @@ namespace Avalonia.Platform
IMouseDevice MouseDevice { get; }
IPopupImpl CreatePopup();
/// <summary>
/// Gets or sets the <see cref="WindowTransparencyLevel"/> ofthe TopLevel.
/// </summary>
WindowTransparencyLevel TransparencyLevel { get; set; }
}
}

18
src/Avalonia.Controls/TopLevel.cs

@ -43,6 +43,12 @@ namespace Avalonia.Controls
public static readonly StyledProperty<IInputElement> PointerOverElementProperty =
AvaloniaProperty.Register<TopLevel, IInputElement>(nameof(IInputRoot.PointerOverElement));
/// <summary>
/// Represents the current <see cref="WindowTransparencyLevel"/>.
/// </summary>
public static readonly StyledProperty<WindowTransparencyLevel> TransparencyLevelProperty =
AvaloniaProperty.Register<TopLevel, WindowTransparencyLevel>(nameof(TransparencyLevel), WindowTransparencyLevel.None);
private readonly IInputManager _inputManager;
private readonly IAccessKeyHandler _accessKeyHandler;
private readonly IKeyboardNavigationHandler _keyboardNavigationHandler;
@ -57,6 +63,9 @@ namespace Avalonia.Controls
static TopLevel()
{
AffectsMeasure<TopLevel>(ClientSizeProperty);
TransparencyLevelProperty.Changed.AddClassHandler<TopLevel>(
(tl, e) => { if (tl.PlatformImpl != null) tl.PlatformImpl.TransparencyLevel = (WindowTransparencyLevel)e.NewValue; });
}
/// <summary>
@ -155,6 +164,15 @@ namespace Avalonia.Controls
protected set { SetAndRaise(ClientSizeProperty, ref _clientSize, value); }
}
/// <summary>
/// Gets or sets the <see cref="WindowTransparencyLevel"/>.
/// </summary>
public WindowTransparencyLevel TransparencyLevel
{
get { return GetValue(TransparencyLevelProperty); }
set { SetValue(TransparencyLevelProperty, value); }
}
public ILayoutManager LayoutManager
{
get

Loading…
Cancel
Save