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.
46 lines
1.1 KiB
46 lines
1.1 KiB
// -----------------------------------------------------------------------
|
|
// <copyright file="ILayoutable.cs" company="Steven Kirk">
|
|
// Copyright 2013 MIT Licence. See licence.md for more information.
|
|
// </copyright>
|
|
// -----------------------------------------------------------------------
|
|
|
|
namespace Perspex.Layout
|
|
{
|
|
// TODO: Probably want to move width/height/etc properties to different interface.
|
|
public interface ILayoutable : IVisual
|
|
{
|
|
Size? DesiredSize { get; }
|
|
|
|
double Width { get; }
|
|
|
|
double Height { get; }
|
|
|
|
double MinWidth { get; }
|
|
|
|
double MaxWidth { get; }
|
|
|
|
double MinHeight { get; }
|
|
|
|
double MaxHeight { get; }
|
|
|
|
HorizontalAlignment HorizontalAlignment { get; }
|
|
|
|
VerticalAlignment VerticalAlignment { get; }
|
|
|
|
bool IsMeasureValid { get; }
|
|
|
|
bool IsArrangeValid { get; }
|
|
|
|
Size? PreviousMeasure { get; }
|
|
|
|
Rect? PreviousArrange { get; }
|
|
|
|
void Measure(Size availableSize, bool force = false);
|
|
|
|
void Arrange(Rect rect, bool force = false);
|
|
|
|
void InvalidateMeasure();
|
|
|
|
void InvalidateArrange();
|
|
}
|
|
}
|
|
|