csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.2 KiB
42 lines
1.2 KiB
// Copyright (c) The Avalonia Project. All rights reserved.
|
|
// Licensed under the MIT license. See licence.md file in the project root for full license information.
|
|
|
|
using Avalonia.LogicalTree;
|
|
|
|
namespace Avalonia.Controls.Primitives
|
|
{
|
|
public class AdornerDecorator : Decorator
|
|
{
|
|
public AdornerDecorator()
|
|
{
|
|
AdornerLayer = new AdornerLayer();
|
|
((ISetLogicalParent)AdornerLayer).SetParent(this);
|
|
AdornerLayer.ZIndex = int.MaxValue;
|
|
VisualChildren.Add(AdornerLayer);
|
|
}
|
|
|
|
protected override void OnAttachedToLogicalTree(LogicalTreeAttachmentEventArgs e)
|
|
{
|
|
base.OnAttachedToLogicalTree(e);
|
|
|
|
((ILogical)AdornerLayer).NotifyAttachedToLogicalTree(e);
|
|
}
|
|
|
|
public AdornerLayer AdornerLayer
|
|
{
|
|
get;
|
|
}
|
|
|
|
protected override Size MeasureOverride(Size availableSize)
|
|
{
|
|
AdornerLayer.Measure(availableSize);
|
|
return base.MeasureOverride(availableSize);
|
|
}
|
|
|
|
protected override Size ArrangeOverride(Size finalSize)
|
|
{
|
|
AdornerLayer.Arrange(new Rect(finalSize));
|
|
return base.ArrangeOverride(finalSize);
|
|
}
|
|
}
|
|
}
|
|
|