Browse Source

Merge branch 'master' into refcount-scene

pull/1365/head
Steven Kirk 8 years ago
committed by GitHub
parent
commit
433939726e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 47
      src/Avalonia.Controls/Window.cs
  2. 1
      src/Avalonia.DesignerSupport/Remote/RemoteDesignerEntryPoint.cs

47
src/Avalonia.Controls/Window.cs

@ -19,27 +19,28 @@ namespace Avalonia.Controls
/// <summary>
/// Determines how a <see cref="Window"/> will size itself to fit its content.
/// </summary>
[Flags]
public enum SizeToContent
{
/// <summary>
/// The window will not automatically size itself to fit its content.
/// </summary>
Manual,
Manual = 0,
/// <summary>
/// The window will size itself horizontally to fit its content.
/// </summary>
Width,
Width = 1,
/// <summary>
/// The window will size itself vertically to fit its content.
/// </summary>
Height,
Height = 2,
/// <summary>
/// The window will size itself horizontally and vertically to fit its content.
/// </summary>
WidthAndHeight,
WidthAndHeight = 3,
}
/// <summary>
@ -374,27 +375,31 @@ namespace Avalonia.Controls
{
var sizeToContent = SizeToContent;
var clientSize = ClientSize;
Size constraint;
Size constraint = clientSize;
switch (sizeToContent)
if ((sizeToContent & SizeToContent.Width) != 0)
{
case SizeToContent.Width:
constraint = new Size(double.PositiveInfinity, ClientSize.Height);
break;
case SizeToContent.Height:
constraint = new Size(ClientSize.Width, double.PositiveInfinity);
break;
case SizeToContent.WidthAndHeight:
constraint = Size.Infinity;
break;
case SizeToContent.Manual:
constraint = ClientSize;
break;
default:
throw new InvalidOperationException("Invalid value for SizeToContent.");
constraint = constraint.WithWidth(double.PositiveInfinity);
}
return base.MeasureOverride(constraint);
if ((sizeToContent & SizeToContent.Height) != 0)
{
constraint = constraint.WithHeight(double.PositiveInfinity);
}
var result = base.MeasureOverride(constraint);
if ((sizeToContent & SizeToContent.Width) == 0)
{
result = result.WithWidth(clientSize.Width);
}
if ((sizeToContent & SizeToContent.Height) == 0)
{
result = result.WithHeight(clientSize.Height);
}
return result;
}
protected override void HandleClosed()

1
src/Avalonia.DesignerSupport/Remote/RemoteDesignerEntryPoint.cs

@ -140,6 +140,7 @@ namespace Avalonia.DesignerSupport.Remote
BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic);
if (builderMethod == null)
throw Die($"{entryPoint.DeclaringType.FullName} doesn't have a method named {BuilderMethodName}");
Design.IsDesignMode = true;
Log($"Obtaining AppBuilder instance from {builderMethod.DeclaringType.FullName}.{builderMethod.Name}");
var appBuilder = builderMethod.Invoke(null, null);
Log($"Initializing application in design mode");

Loading…
Cancel
Save