diff --git a/Perspex.Controls/Border.cs b/Perspex.Controls/Border.cs index b22a22c37f..15472fa425 100644 --- a/Perspex.Controls/Border.cs +++ b/Perspex.Controls/Border.cs @@ -85,7 +85,7 @@ namespace Perspex.Controls if (content != null) { content.Measure(availableSize.Deflate(padding)); - return content.DesiredSize.Value.Inflate(padding); + return content.DesiredSize.Inflate(padding); } return new Size(); diff --git a/Perspex.Controls/Decorator.cs b/Perspex.Controls/Decorator.cs index 37eb4760a9..0eb3645592 100644 --- a/Perspex.Controls/Decorator.cs +++ b/Perspex.Controls/Decorator.cs @@ -80,7 +80,7 @@ namespace Perspex.Controls if (content != null) { content.Measure(availableSize.Deflate(padding)); - return content.DesiredSize.Value.Inflate(padding); + return content.DesiredSize.Inflate(padding); } return new Size(); diff --git a/Perspex.Controls/Grid.cs b/Perspex.Controls/Grid.cs index b5e57cc178..ee7632ede9 100644 --- a/Perspex.Controls/Grid.cs +++ b/Perspex.Controls/Grid.cs @@ -359,7 +359,7 @@ namespace Perspex.Controls } child.Measure(new Size(childSizeX, childSizeY)); - Size desired = child.DesiredSize.Value; + Size desired = child.DesiredSize; // Elements distribute their height based on two rules: // 1) Elements with rowspan/colspan == 1 distribute their height first diff --git a/Perspex.Controls/Presenters/ContentPresenter.cs b/Perspex.Controls/Presenters/ContentPresenter.cs index 96e5e1a966..1ab7331f2a 100644 --- a/Perspex.Controls/Presenters/ContentPresenter.cs +++ b/Perspex.Controls/Presenters/ContentPresenter.cs @@ -65,7 +65,7 @@ namespace Perspex.Controls.Presenters if (child != null) { child.Measure(availableSize); - return child.DesiredSize.Value; + return child.DesiredSize; } return new Size(); diff --git a/Perspex.Controls/Presenters/DeckPresenter.cs b/Perspex.Controls/Presenters/DeckPresenter.cs index adfd6de028..ddb1421b01 100644 --- a/Perspex.Controls/Presenters/DeckPresenter.cs +++ b/Perspex.Controls/Presenters/DeckPresenter.cs @@ -14,10 +14,8 @@ namespace Perspex.Controls.Presenters using Perspex.Styling; using System; using System.Collections; - using System.Collections.Specialized; using System.Linq; using System.Reactive.Linq; - using System.Threading.Tasks; public class DeckPresenter : Control, IVisual, IPresenter, ITemplatedControl { @@ -87,7 +85,7 @@ namespace Perspex.Controls.Presenters protected override Size MeasureOverride(Size availableSize) { this.Panel.Measure(availableSize); - return this.Panel.DesiredSize.Value; + return this.Panel.DesiredSize; } protected override Size ArrangeOverride(Size finalSize) diff --git a/Perspex.Controls/Presenters/ItemsPresenter.cs b/Perspex.Controls/Presenters/ItemsPresenter.cs index 2730546c96..4ee2cd1486 100644 --- a/Perspex.Controls/Presenters/ItemsPresenter.cs +++ b/Perspex.Controls/Presenters/ItemsPresenter.cs @@ -64,7 +64,7 @@ namespace Perspex.Controls.Presenters protected override Size MeasureOverride(Size availableSize) { this.Panel.Measure(availableSize); - return this.Panel.DesiredSize.Value; + return this.Panel.DesiredSize; } protected override Size ArrangeOverride(Size finalSize) diff --git a/Perspex.Controls/Presenters/ScrollContentPresenter.cs b/Perspex.Controls/Presenters/ScrollContentPresenter.cs index a79f0785d0..3baef37e6a 100644 --- a/Perspex.Controls/Presenters/ScrollContentPresenter.cs +++ b/Perspex.Controls/Presenters/ScrollContentPresenter.cs @@ -76,7 +76,7 @@ namespace Perspex.Controls.Presenters } content.Measure(measureSize); - var size = content.DesiredSize.Value; + var size = content.DesiredSize; this.measuredExtent = size; return size.Constrain(availableSize); } @@ -95,7 +95,7 @@ namespace Perspex.Controls.Presenters if (child != null) { - child.Arrange(new Rect((Point)(-this.Offset), child.DesiredSize.Value)); + child.Arrange(new Rect((Point)(-this.Offset), child.DesiredSize)); return finalSize; } diff --git a/Perspex.Controls/Primitives/AdornerLayer.cs b/Perspex.Controls/Primitives/AdornerLayer.cs index 3b769c9a2a..7009c580e6 100644 --- a/Perspex.Controls/Primitives/AdornerLayer.cs +++ b/Perspex.Controls/Primitives/AdornerLayer.cs @@ -60,7 +60,7 @@ namespace Perspex.Controls.Primitives } else { - child.Arrange(new Rect(child.DesiredSize.Value)); + child.Arrange(new Rect(child.DesiredSize)); } } diff --git a/Perspex.Controls/Primitives/TemplatedControl.cs b/Perspex.Controls/Primitives/TemplatedControl.cs index 555878d610..21049fa9a5 100644 --- a/Perspex.Controls/Primitives/TemplatedControl.cs +++ b/Perspex.Controls/Primitives/TemplatedControl.cs @@ -166,7 +166,7 @@ namespace Perspex.Controls.Primitives if (child != null) { child.Measure(availableSize); - return child.DesiredSize.Value; + return child.DesiredSize; } return new Size(); diff --git a/Perspex.Controls/Primitives/Track.cs b/Perspex.Controls/Primitives/Track.cs index adf388a635..ae687b6d39 100644 --- a/Perspex.Controls/Primitives/Track.cs +++ b/Perspex.Controls/Primitives/Track.cs @@ -103,11 +103,11 @@ namespace Perspex.Controls.Primitives if (this.Orientation == Orientation.Horizontal) { - return new Size(0, thumb.DesiredSize.Value.Height); + return new Size(0, thumb.DesiredSize.Height); } else { - return new Size(thumb.DesiredSize.Value.Width, 0); + return new Size(thumb.DesiredSize.Width, 0); } } diff --git a/Perspex.Controls/StackPanel.cs b/Perspex.Controls/StackPanel.cs index 9ca0b98c9d..5e1435af7f 100644 --- a/Perspex.Controls/StackPanel.cs +++ b/Perspex.Controls/StackPanel.cs @@ -116,7 +116,7 @@ namespace Perspex.Controls foreach (Control child in this.Children) { child.Measure(new Size(childAvailableWidth, childAvailableHeight)); - Size size = child.DesiredSize.Value; + Size size = child.DesiredSize; if (Orientation == Orientation.Vertical) { @@ -150,8 +150,8 @@ namespace Perspex.Controls foreach (Control child in this.Children) { - double childWidth = child.DesiredSize.Value.Width; - double childHeight = child.DesiredSize.Value.Height; + double childWidth = child.DesiredSize.Width; + double childHeight = child.DesiredSize.Height; if (Orientation == Orientation.Vertical) { diff --git a/Perspex.Controls/TopLevel.cs b/Perspex.Controls/TopLevel.cs index 8cc0d46f74..8c24e18361 100644 --- a/Perspex.Controls/TopLevel.cs +++ b/Perspex.Controls/TopLevel.cs @@ -173,8 +173,8 @@ namespace Perspex.Controls using (this.BeginAutoSizing()) { this.ClientSize = new Size( - double.IsNaN(this.Width) ? this.DesiredSize.Value.Width : this.ClientSize.Width, - double.IsNaN(this.Height) ? this.DesiredSize.Value.Height : this.ClientSize.Height); + double.IsNaN(this.Width) ? this.DesiredSize.Width : this.ClientSize.Width, + double.IsNaN(this.Height) ? this.DesiredSize.Height : this.ClientSize.Height); } this.PlatformImpl.Invalidate(new Rect(this.ClientSize)); diff --git a/Perspex.Layout/ILayoutable.cs b/Perspex.Layout/ILayoutable.cs index bca24c69f7..0724c8d00b 100644 --- a/Perspex.Layout/ILayoutable.cs +++ b/Perspex.Layout/ILayoutable.cs @@ -9,7 +9,7 @@ namespace Perspex.Layout // TODO: Probably want to move width/height/etc properties to different interface. public interface ILayoutable : IVisual { - Size? DesiredSize { get; } + Size DesiredSize { get; } double Width { get; } diff --git a/Perspex.Layout/LayoutManager.cs b/Perspex.Layout/LayoutManager.cs index 243fb91d5b..99674b7c66 100644 --- a/Perspex.Layout/LayoutManager.cs +++ b/Perspex.Layout/LayoutManager.cs @@ -211,7 +211,7 @@ namespace Perspex.Layout if (!this.Root.IsArrangeValid && this.Root.IsMeasureValid) { - this.Root.Arrange(new Rect(this.Root.DesiredSize.Value)); + this.Root.Arrange(new Rect(this.Root.DesiredSize)); } if (this.toMeasure.Count > 0) diff --git a/Perspex.Layout/Layoutable.cs b/Perspex.Layout/Layoutable.cs index 838aa73577..b5a46c1ffd 100644 --- a/Perspex.Layout/Layoutable.cs +++ b/Perspex.Layout/Layoutable.cs @@ -131,7 +131,7 @@ namespace Perspex.Layout set { this.SetValue(VerticalAlignmentProperty, value); } } - public Size? DesiredSize + public Size DesiredSize { get; set; @@ -246,7 +246,6 @@ namespace Perspex.Layout this.IsArrangeValid = false; this.previousMeasure = null; this.previousArrange = null; - this.DesiredSize = null; if (parent != null && IsResizable(parent)) { @@ -307,12 +306,12 @@ namespace Perspex.Layout if (this.HorizontalAlignment != HorizontalAlignment.Stretch) { - size = size.WithWidth(Math.Min(size.Width, this.DesiredSize.Value.Width)); + size = size.WithWidth(Math.Min(size.Width, this.DesiredSize.Width)); } if (this.VerticalAlignment != VerticalAlignment.Stretch) { - size = size.WithHeight(Math.Min(size.Height, this.DesiredSize.Value.Height)); + size = size.WithHeight(Math.Min(size.Height, this.DesiredSize.Height)); } size = LayoutHelper.ApplyLayoutConstraints(this, size); @@ -411,8 +410,8 @@ namespace Perspex.Layout foreach (ILayoutable child in this.GetVisualChildren().OfType()) { child.Measure(availableSize); - width = Math.Max(width, child.DesiredSize.Value.Width); - height = Math.Max(height, child.DesiredSize.Value.Height); + width = Math.Max(width, child.DesiredSize.Width); + height = Math.Max(height, child.DesiredSize.Height); } return new Size(width, height);