Browse Source

Fixed Window.SizeToContent.

Should be doing that shit in the Measure pass dawg.
pull/81/head
Steven Kirk 11 years ago
parent
commit
a038931c1c
  1. 43
      Perspex.Controls/Window.cs

43
Perspex.Controls/Window.cs

@ -197,36 +197,31 @@ namespace Perspex.Controls
}
/// <inheritdoc/>
protected override Size ArrangeOverride(Size finalSize)
protected override Size MeasureOverride(Size availableSize)
{
var sizeToContent = this.SizeToContent;
var size = this.ClientSize;
var desired = base.MeasureOverride(availableSize);
if (sizeToContent != SizeToContent.Manual)
switch (sizeToContent)
{
Size size;
switch (sizeToContent)
{
case SizeToContent.Width:
size = new Size(finalSize.Width, this.ClientSize.Height);
break;
case SizeToContent.Height:
size = new Size(this.ClientSize.Width, finalSize.Height);
break;
case SizeToContent.WidthAndHeight:
size = new Size(finalSize.Width, finalSize.Height);
break;
default:
throw new InvalidOperationException("Invalid value for SizeToContent.");
}
using (this.BeginAutoSizing())
{
this.PlatformImpl.ClientSize = size;
}
case SizeToContent.Width:
size = new Size(desired.Width, this.ClientSize.Height);
break;
case SizeToContent.Height:
size = new Size(this.ClientSize.Width, desired.Height);
break;
case SizeToContent.WidthAndHeight:
size = new Size(desired.Width, desired.Height);
break;
case SizeToContent.Manual:
size = this.ClientSize;
break;
default:
throw new InvalidOperationException("Invalid value for SizeToContent.");
}
return base.ArrangeOverride(this.PlatformImpl.ClientSize);
return size;
}
/// <inheritdoc/>

Loading…
Cancel
Save