summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla37462.cs2
-rw-r--r--Xamarin.Forms.Core.UnitTests/GridTests.cs3
-rw-r--r--Xamarin.Forms.Core/AbsoluteLayout.cs3
-rw-r--r--Xamarin.Forms.Core/Button.cs11
-rw-r--r--Xamarin.Forms.Core/Grid.cs9
-rw-r--r--Xamarin.Forms.Core/IVisualElementController.cs3
-rw-r--r--Xamarin.Forms.Core/Image.cs5
-rw-r--r--Xamarin.Forms.Core/Internals/InvalidationTrigger.cs (renamed from Xamarin.Forms.Core/InvalidationTrigger.cs)4
-rw-r--r--Xamarin.Forms.Core/InvalidationEventArgs.cs1
-rw-r--r--Xamarin.Forms.Core/Label.cs15
-rw-r--r--Xamarin.Forms.Core/Layout.cs7
-rw-r--r--Xamarin.Forms.Core/Page.cs5
-rw-r--r--Xamarin.Forms.Core/StackLayout.cs5
-rw-r--r--Xamarin.Forms.Core/View.cs7
-rw-r--r--Xamarin.Forms.Core/VisualElement.cs22
-rw-r--r--Xamarin.Forms.Core/Xamarin.Forms.Core.csproj2
-rw-r--r--Xamarin.Forms.Platform.Android/NativeViewWrapperRenderer.cs4
-rw-r--r--Xamarin.Forms.Platform.WP8/NativeViewWrapperRenderer.cs3
-rw-r--r--Xamarin.Forms.Platform.WP8/ProgressBarRenderer.cs3
-rw-r--r--Xamarin.Forms.Platform.WP8/ViewToRendererConverter.cs3
-rw-r--r--Xamarin.Forms.Platform.WinRT/DatePickerRenderer.cs5
-rw-r--r--Xamarin.Forms.Platform.WinRT/ImageRenderer.cs3
-rw-r--r--Xamarin.Forms.Platform.WinRT/NativeViewWrapperRenderer.cs3
-rw-r--r--Xamarin.Forms.Platform.WinRT/PickerRenderer.cs9
-rw-r--r--Xamarin.Forms.Platform.WinRT/ProgressBarRenderer.cs3
-rw-r--r--Xamarin.Forms.Platform.WinRT/TimePickerRenderer.cs5
-rw-r--r--Xamarin.Forms.Platform.iOS/NativeViewWrapperRenderer.cs3
-rw-r--r--docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/InvalidationTrigger.xml120
-rw-r--r--docs/Xamarin.Forms.Core/Xamarin.Forms/IVisualElementController.xml19
-rw-r--r--docs/Xamarin.Forms.Core/Xamarin.Forms/InvalidationTrigger.xml120
-rw-r--r--docs/Xamarin.Forms.Core/Xamarin.Forms/VisualElement.xml36
31 files changed, 384 insertions, 59 deletions
diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla37462.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla37462.cs
index 6e3c3aab..89c3b032 100644
--- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla37462.cs
+++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Bugzilla37462.cs
@@ -22,7 +22,7 @@ namespace Xamarin.Forms.Controls
var label1 = new Label { Text = "This is a label on page 1" };
page1.Content = new StackLayout { Children = { button1, label1 } };
page1.Appearing += (sender, args) => {
- page1.InvalidateMeasure (InvalidationTrigger.MeasureChanged);
+ ((IVisualElementController)page1).InvalidateMeasure(InvalidationTrigger.MeasureChanged);
};
var page2 = new ContentPage { Title = "Page 2" };
diff --git a/Xamarin.Forms.Core.UnitTests/GridTests.cs b/Xamarin.Forms.Core.UnitTests/GridTests.cs
index 203d3b64..359d2b5b 100644
--- a/Xamarin.Forms.Core.UnitTests/GridTests.cs
+++ b/Xamarin.Forms.Core.UnitTests/GridTests.cs
@@ -2,6 +2,7 @@ using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms.Core.UnitTests
{
@@ -1555,7 +1556,7 @@ namespace Xamarin.Forms.Core.UnitTests
bool fire = true;
child.SizeChanged += (sender, args) => {
if (fire)
- child.InvalidateMeasure (InvalidationTrigger.Undefined);
+ ((IVisualElementController)child).InvalidateMeasure(InvalidationTrigger.Undefined);
fire = false;
};
diff --git a/Xamarin.Forms.Core/AbsoluteLayout.cs b/Xamarin.Forms.Core/AbsoluteLayout.cs
index 51b5ca12..aceec2b3 100644
--- a/Xamarin.Forms.Core/AbsoluteLayout.cs
+++ b/Xamarin.Forms.Core/AbsoluteLayout.cs
@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms
{
@@ -132,7 +133,7 @@ namespace Xamarin.Forms
{
if (e.PropertyName == LayoutFlagsProperty.PropertyName || e.PropertyName == LayoutBoundsProperty.PropertyName)
{
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
UpdateChildrenLayout();
}
}
diff --git a/Xamarin.Forms.Core/Button.cs b/Xamarin.Forms.Core/Button.cs
index 9c746c9e..72f98814 100644
--- a/Xamarin.Forms.Core/Button.cs
+++ b/Xamarin.Forms.Core/Button.cs
@@ -2,6 +2,7 @@ using System;
using System.Diagnostics;
using System.Globalization;
using System.Windows.Input;
+using Xamarin.Forms.Internals;
using Xamarin.Forms.Platform;
namespace Xamarin.Forms
@@ -18,7 +19,7 @@ namespace Xamarin.Forms
BindableProperty.Create("ContentLayout", typeof(ButtonContentLayout), typeof(Button), new ButtonContentLayout(ButtonContentLayout.ImagePosition.Left, DefaultSpacing));
public static readonly BindableProperty TextProperty = BindableProperty.Create("Text", typeof(string), typeof(Button), null,
- propertyChanged: (bindable, oldVal, newVal) => ((Button)bindable).InvalidateMeasure(InvalidationTrigger.MeasureChanged));
+ propertyChanged: (bindable, oldVal, newVal) => ((Button)bindable).InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged));
public static readonly BindableProperty TextColorProperty = BindableProperty.Create("TextColor", typeof(Color), typeof(Button), Color.Default);
@@ -178,7 +179,7 @@ namespace Xamarin.Forms
if (button._cancelEvents)
return;
- button.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ button.InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
button._cancelEvents = true;
@@ -219,7 +220,7 @@ namespace Xamarin.Forms
void OnSourceChanged(object sender, EventArgs eventArgs)
{
OnPropertyChanged(ImageProperty.PropertyName);
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
void OnSourcePropertyChanged(ImageSource oldvalue, ImageSource newvalue)
@@ -229,7 +230,7 @@ namespace Xamarin.Forms
newvalue.SourceChanged += OnSourceChanged;
SetInheritedBindingContext(newvalue, BindingContext);
}
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
void OnSourcePropertyChanging(ImageSource oldvalue, ImageSource newvalue)
@@ -245,7 +246,7 @@ namespace Xamarin.Forms
if (button._cancelEvents)
return;
- button.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ button.InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
button._cancelEvents = true;
diff --git a/Xamarin.Forms.Core/Grid.cs b/Xamarin.Forms.Core/Grid.cs
index 442146c2..a0460af5 100644
--- a/Xamarin.Forms.Core/Grid.cs
+++ b/Xamarin.Forms.Core/Grid.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms
{
@@ -17,10 +18,10 @@ namespace Xamarin.Forms
public static readonly BindableProperty ColumnSpanProperty = BindableProperty.CreateAttached("ColumnSpan", typeof(int), typeof(Grid), 1, validateValue: (bindable, value) => (int)value >= 1);
public static readonly BindableProperty RowSpacingProperty = BindableProperty.Create("RowSpacing", typeof(double), typeof(Grid), 6d,
- propertyChanged: (bindable, oldValue, newValue) => ((Grid)bindable).InvalidateMeasure(InvalidationTrigger.MeasureChanged));
+ propertyChanged: (bindable, oldValue, newValue) => ((Grid)bindable).InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged));
public static readonly BindableProperty ColumnSpacingProperty = BindableProperty.Create("ColumnSpacing", typeof(double), typeof(Grid), 6d,
- propertyChanged: (bindable, oldValue, newValue) => ((Grid)bindable).InvalidateMeasure(InvalidationTrigger.MeasureChanged));
+ propertyChanged: (bindable, oldValue, newValue) => ((Grid)bindable).InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged));
public static readonly BindableProperty ColumnDefinitionsProperty = BindableProperty.Create("ColumnDefinitions", typeof(ColumnDefinitionCollection), typeof(Grid), null,
validateValue: (bindable, value) => value != null, propertyChanged: (bindable, oldvalue, newvalue) =>
@@ -211,9 +212,9 @@ namespace Xamarin.Forms
view.ComputedConstraint = result;
}
- internal override void InvalidateMeasure(InvalidationTrigger trigger)
+ internal override void InvalidateMeasureInternal(InvalidationTrigger trigger)
{
- base.InvalidateMeasure(trigger);
+ base.InvalidateMeasureInternal(trigger);
_columns = null;
_rows = null;
}
diff --git a/Xamarin.Forms.Core/IVisualElementController.cs b/Xamarin.Forms.Core/IVisualElementController.cs
index 03be293a..672f47de 100644
--- a/Xamarin.Forms.Core/IVisualElementController.cs
+++ b/Xamarin.Forms.Core/IVisualElementController.cs
@@ -1,7 +1,10 @@
+using Xamarin.Forms.Internals;
+
namespace Xamarin.Forms
{
public interface IVisualElementController : IElementController
{
void NativeSizeChanged();
+ void InvalidateMeasure(InvalidationTrigger trigger);
}
} \ No newline at end of file
diff --git a/Xamarin.Forms.Core/Image.cs b/Xamarin.Forms.Core/Image.cs
index 4528f3b9..7d6299ac 100644
--- a/Xamarin.Forms.Core/Image.cs
+++ b/Xamarin.Forms.Core/Image.cs
@@ -1,4 +1,5 @@
using System;
+using Xamarin.Forms.Internals;
using Xamarin.Forms.Platform;
namespace Xamarin.Forms
@@ -110,7 +111,7 @@ namespace Xamarin.Forms
void OnSourceChanged(object sender, EventArgs eventArgs)
{
OnPropertyChanged(SourceProperty.PropertyName);
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
static void OnSourcePropertyChanged(BindableObject bindable, object oldvalue, object newvalue)
@@ -125,7 +126,7 @@ namespace Xamarin.Forms
newvalue.SourceChanged += OnSourceChanged;
SetInheritedBindingContext(newvalue, BindingContext);
}
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
static void OnSourcePropertyChanging(BindableObject bindable, object oldvalue, object newvalue)
diff --git a/Xamarin.Forms.Core/InvalidationTrigger.cs b/Xamarin.Forms.Core/Internals/InvalidationTrigger.cs
index e7db534e..9a4180e4 100644
--- a/Xamarin.Forms.Core/InvalidationTrigger.cs
+++ b/Xamarin.Forms.Core/Internals/InvalidationTrigger.cs
@@ -1,9 +1,9 @@
using System;
-namespace Xamarin.Forms
+namespace Xamarin.Forms.Internals
{
[Flags]
- internal enum InvalidationTrigger
+ public enum InvalidationTrigger
{
Undefined = 0,
MeasureChanged = 1 << 0,
diff --git a/Xamarin.Forms.Core/InvalidationEventArgs.cs b/Xamarin.Forms.Core/InvalidationEventArgs.cs
index d88e2519..1dd5c098 100644
--- a/Xamarin.Forms.Core/InvalidationEventArgs.cs
+++ b/Xamarin.Forms.Core/InvalidationEventArgs.cs
@@ -1,4 +1,5 @@
using System;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms
{
diff --git a/Xamarin.Forms.Core/Label.cs b/Xamarin.Forms.Core/Label.cs
index 1efbd668..1385b763 100644
--- a/Xamarin.Forms.Core/Label.cs
+++ b/Xamarin.Forms.Core/Label.cs
@@ -1,5 +1,6 @@
using System;
using System.ComponentModel;
+using Xamarin.Forms.Internals;
using Xamarin.Forms.Platform;
namespace Xamarin.Forms
@@ -41,13 +42,13 @@ namespace Xamarin.Forms
{
if (newvalue != null)
((FormattedString)newvalue).PropertyChanged += ((Label)bindable).OnFormattedTextChanged;
- ((Label)bindable).InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ ((Label)bindable).InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
if (newvalue != null)
((Label)bindable).Text = null;
});
public static readonly BindableProperty LineBreakModeProperty = BindableProperty.Create("LineBreakMode", typeof(LineBreakMode), typeof(Label), LineBreakMode.WordWrap,
- propertyChanged: (bindable, oldvalue, newvalue) => ((Label)bindable).InvalidateMeasure(InvalidationTrigger.MeasureChanged));
+ propertyChanged: (bindable, oldvalue, newvalue) => ((Label)bindable).InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged));
bool _cancelEvents;
@@ -158,7 +159,7 @@ namespace Xamarin.Forms
label._cancelEvents = false;
- label.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ label.InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
static void OnFontAttributesChanged(BindableObject bindable, object oldValue, object newValue)
@@ -189,7 +190,7 @@ namespace Xamarin.Forms
label._cancelEvents = false;
- label.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ label.InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
static void OnFontFamilyChanged(BindableObject bindable, object oldValue, object newValue)
@@ -217,7 +218,7 @@ namespace Xamarin.Forms
}
label._cancelEvents = false;
- label.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ label.InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
static void OnFontSizeChanged(BindableObject bindable, object oldValue, object newValue)
@@ -247,7 +248,7 @@ namespace Xamarin.Forms
label._cancelEvents = false;
- label.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ label.InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
void OnFormattedTextChanged(object sender, PropertyChangedEventArgs e)
@@ -270,7 +271,7 @@ namespace Xamarin.Forms
bool isVerticallyFixed = (label.Constraint & LayoutConstraint.VerticallyFixed) != 0;
bool isSingleLine = !(breakMode == LineBreakMode.CharacterWrap || breakMode == LineBreakMode.WordWrap);
if (!isVerticallyFixed || !isSingleLine)
- ((Label)bindable).InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ ((Label)bindable).InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
if (newvalue != null)
((Label)bindable).FormattedText = null;
}
diff --git a/Xamarin.Forms.Core/Layout.cs b/Xamarin.Forms.Core/Layout.cs
index a7864070..a98e46a1 100644
--- a/Xamarin.Forms.Core/Layout.cs
+++ b/Xamarin.Forms.Core/Layout.cs
@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Linq;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms
{
@@ -168,7 +169,7 @@ namespace Xamarin.Forms
protected virtual void InvalidateLayout()
{
_hasDoneLayout = false;
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
if (!_hasDoneLayout)
ForceLayout();
}
@@ -304,11 +305,11 @@ namespace Xamarin.Forms
_allocatedFlag = false;
if (trigger == InvalidationTrigger.RendererReady)
{
- InvalidateMeasure(InvalidationTrigger.RendererReady);
+ InvalidateMeasureInternal(InvalidationTrigger.RendererReady);
}
else
{
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
s_resolutionList.Add(new KeyValuePair<Layout, int>(this, GetElementDepth(this)));
diff --git a/Xamarin.Forms.Core/Page.cs b/Xamarin.Forms.Core/Page.cs
index 903f4b53..2e1caf0f 100644
--- a/Xamarin.Forms.Core/Page.cs
+++ b/Xamarin.Forms.Core/Page.cs
@@ -5,6 +5,7 @@ using System.Collections.Specialized;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using Xamarin.Forms.Internals;
using Xamarin.Forms.Platform;
namespace Xamarin.Forms
@@ -283,7 +284,7 @@ namespace Xamarin.Forms
}
_allocatedFlag = false;
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
if (!_allocatedFlag && Width >= 0 && Height >= 0)
{
SizeAllocated(Width, Height);
@@ -348,7 +349,7 @@ namespace Xamarin.Forms
view.MeasureInvalidated += OnChildMeasureInvalidated;
OnChildAdded(view);
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
void OnInternalRemoved(VisualElement view)
diff --git a/Xamarin.Forms.Core/StackLayout.cs b/Xamarin.Forms.Core/StackLayout.cs
index 4dc7bfa3..e115a23d 100644
--- a/Xamarin.Forms.Core/StackLayout.cs
+++ b/Xamarin.Forms.Core/StackLayout.cs
@@ -1,4 +1,5 @@
using System;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms
{
@@ -73,10 +74,10 @@ namespace Xamarin.Forms
ComputeConstraintForView(view, false);
}
- internal override void InvalidateMeasure(InvalidationTrigger trigger)
+ internal override void InvalidateMeasureInternal(InvalidationTrigger trigger)
{
_layoutInformation = new LayoutInformation();
- base.InvalidateMeasure(trigger);
+ base.InvalidateMeasureInternal(trigger);
}
void AlignOffAxis(LayoutInformation layout, StackOrientation orientation, double widthConstraint, double heightConstraint)
diff --git a/Xamarin.Forms.Core/View.cs b/Xamarin.Forms.Core/View.cs
index d03c74bb..1ff51d9c 100644
--- a/Xamarin.Forms.Core/View.cs
+++ b/Xamarin.Forms.Core/View.cs
@@ -3,16 +3,17 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Linq;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms
{
public class View : VisualElement, IViewController
{
public static readonly BindableProperty VerticalOptionsProperty = BindableProperty.Create("VerticalOptions", typeof(LayoutOptions), typeof(View), LayoutOptions.Fill,
- propertyChanged: (bindable, oldvalue, newvalue) => ((View)bindable).InvalidateMeasure(InvalidationTrigger.VerticalOptionsChanged));
+ propertyChanged: (bindable, oldvalue, newvalue) => ((View)bindable).InvalidateMeasureInternal(InvalidationTrigger.VerticalOptionsChanged));
public static readonly BindableProperty HorizontalOptionsProperty = BindableProperty.Create("HorizontalOptions", typeof(LayoutOptions), typeof(View), LayoutOptions.Fill,
- propertyChanged: (bindable, oldvalue, newvalue) => ((View)bindable).InvalidateMeasure(InvalidationTrigger.HorizontalOptionsChanged));
+ propertyChanged: (bindable, oldvalue, newvalue) => ((View)bindable).InvalidateMeasureInternal(InvalidationTrigger.HorizontalOptionsChanged));
public static readonly BindableProperty MarginProperty = BindableProperty.Create("Margin", typeof(Thickness), typeof(View), default(Thickness), propertyChanged: MarginPropertyChanged);
@@ -100,7 +101,7 @@ namespace Xamarin.Forms
static void MarginPropertyChanged(BindableObject bindable, object oldValue, object newValue)
{
- ((View)bindable).InvalidateMeasure(InvalidationTrigger.MarginChanged);
+ ((View)bindable).InvalidateMeasureInternal(InvalidationTrigger.MarginChanged);
}
void ValidateGesture(IGestureRecognizer gesture)
diff --git a/Xamarin.Forms.Core/VisualElement.cs b/Xamarin.Forms.Core/VisualElement.cs
index e93dea6c..da8b8292 100644
--- a/Xamarin.Forms.Core/VisualElement.cs
+++ b/Xamarin.Forms.Core/VisualElement.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms
{
@@ -353,7 +354,7 @@ namespace Xamarin.Forms
return;
_isNativeStateConsistent = value;
if (value && IsPlatformEnabled)
- InvalidateMeasure(InvalidationTrigger.RendererReady);
+ InvalidateMeasureInternal(InvalidationTrigger.RendererReady);
}
}
@@ -367,7 +368,7 @@ namespace Xamarin.Forms
_isPlatformEnabled = value;
if (value && IsNativeStateConsistent)
- InvalidateMeasure(InvalidationTrigger.RendererReady);
+ InvalidateMeasureInternal(InvalidationTrigger.RendererReady);
OnIsPlatformEnabledChanged();
}
@@ -428,7 +429,7 @@ namespace Xamarin.Forms
void IVisualElementController.NativeSizeChanged()
{
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
public event EventHandler ChildrenReordered;
@@ -559,9 +560,9 @@ namespace Xamarin.Forms
public event EventHandler<FocusEventArgs> Unfocused;
- protected virtual void InvalidateMeasure()
+ protected virtual void InvalidateMeasureInternal()
{
- InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ InvalidateMeasureInternal(InvalidationTrigger.MeasureChanged);
}
protected override void OnChildAdded(Element child)
@@ -647,12 +648,17 @@ namespace Xamarin.Forms
internal event EventHandler<FocusRequestArgs> FocusChangeRequested;
- internal virtual void InvalidateMeasure(InvalidationTrigger trigger)
+ internal virtual void InvalidateMeasureInternal(InvalidationTrigger trigger)
{
_measureCache.Clear();
MeasureInvalidated?.Invoke(this, new InvalidationEventArgs(trigger));
}
+ void IVisualElementController.InvalidateMeasure(InvalidationTrigger trigger)
+ {
+ InvalidateMeasureInternal(trigger);
+ }
+
internal void MockBounds(Rectangle bounds)
{
_mockX = bounds.X;
@@ -672,7 +678,7 @@ namespace Xamarin.Forms
internal virtual void OnIsVisibleChanged(bool oldValue, bool newValue)
{
- InvalidateMeasure(InvalidationTrigger.Undefined);
+ InvalidateMeasureInternal(InvalidationTrigger.Undefined);
}
internal override void OnParentResourcesChanged(IEnumerable<KeyValuePair<string, object>> values)
@@ -746,7 +752,7 @@ namespace Xamarin.Forms
}
element.SelfConstraint = constraint;
- ((VisualElement)bindable).InvalidateMeasure(InvalidationTrigger.SizeRequestChanged);
+ ((VisualElement)bindable).InvalidateMeasureInternal(InvalidationTrigger.SizeRequestChanged);
}
void OnUnfocus()
diff --git a/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj b/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj
index 1deca238..24160a53 100644
--- a/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj
+++ b/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj
@@ -126,7 +126,7 @@
<Compile Include="ImageSourceConverter.cs" />
<Compile Include="INavigation.cs" />
<Compile Include="InvalidationEventArgs.cs" />
- <Compile Include="InvalidationTrigger.cs" />
+ <Compile Include="Internals\InvalidationTrigger.cs" />
<Compile Include="InvalidNavigationException.cs" />
<Compile Include="IOpenGlViewController.cs" />
<Compile Include="IPanGestureController.cs" />
diff --git a/Xamarin.Forms.Platform.Android/NativeViewWrapperRenderer.cs b/Xamarin.Forms.Platform.Android/NativeViewWrapperRenderer.cs
index 49abc02a..2036e4bb 100644
--- a/Xamarin.Forms.Platform.Android/NativeViewWrapperRenderer.cs
+++ b/Xamarin.Forms.Platform.Android/NativeViewWrapperRenderer.cs
@@ -1,3 +1,5 @@
+using Xamarin.Forms.Internals;
+
namespace Xamarin.Forms.Platform.Android
{
public class NativeViewWrapperRenderer : ViewRenderer<NativeViewWrapper, global::Android.Views.View>
@@ -22,7 +24,7 @@ namespace Xamarin.Forms.Platform.Android
if (e.OldElement == null)
{
SetNativeControl(Element.NativeView);
- Control.LayoutChange += (sender, args) => Element?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ Control.LayoutChange += (sender, args) => ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
}
}
diff --git a/Xamarin.Forms.Platform.WP8/NativeViewWrapperRenderer.cs b/Xamarin.Forms.Platform.WP8/NativeViewWrapperRenderer.cs
index e28dec94..e47a6ca0 100644
--- a/Xamarin.Forms.Platform.WP8/NativeViewWrapperRenderer.cs
+++ b/Xamarin.Forms.Platform.WP8/NativeViewWrapperRenderer.cs
@@ -1,4 +1,5 @@
using System.Windows;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms.Platform.WinPhone
{
@@ -55,7 +56,7 @@ namespace Xamarin.Forms.Platform.WinPhone
if (e.OldElement == null)
{
SetNativeControl(Element.NativeElement);
- Control.LayoutUpdated += (sender, args) => { Element?.InvalidateMeasure(InvalidationTrigger.MeasureChanged); };
+ Control.LayoutUpdated += (sender, args) => { ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.MeasureChanged); };
}
}
}
diff --git a/Xamarin.Forms.Platform.WP8/ProgressBarRenderer.cs b/Xamarin.Forms.Platform.WP8/ProgressBarRenderer.cs
index b027d674..293d2d0e 100644
--- a/Xamarin.Forms.Platform.WP8/ProgressBarRenderer.cs
+++ b/Xamarin.Forms.Platform.WP8/ProgressBarRenderer.cs
@@ -1,5 +1,6 @@
using System.ComponentModel;
using System.Windows;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms.Platform.WinPhone
{
@@ -29,7 +30,7 @@ namespace Xamarin.Forms.Platform.WinPhone
void ProgressBarOnValueChanged(object sender, RoutedPropertyChangedEventArgs<double> routedPropertyChangedEventArgs)
{
- Element?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
}
}
} \ No newline at end of file
diff --git a/Xamarin.Forms.Platform.WP8/ViewToRendererConverter.cs b/Xamarin.Forms.Platform.WP8/ViewToRendererConverter.cs
index 49b232a1..28f5f8c4 100644
--- a/Xamarin.Forms.Platform.WP8/ViewToRendererConverter.cs
+++ b/Xamarin.Forms.Platform.WP8/ViewToRendererConverter.cs
@@ -2,6 +2,7 @@
using System.Globalization;
using System.Windows;
using System.Windows.Controls;
+using Xamarin.Forms.Internals;
namespace Xamarin.Forms.Platform.WinPhone
{
@@ -40,7 +41,7 @@ namespace Xamarin.Forms.Platform.WinPhone
{
frameworkElement.Loaded += (sender, args) =>
{
- _view.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ ((IVisualElementController)_view).InvalidateMeasure(InvalidationTrigger.MeasureChanged);
InvalidateMeasure();
};
}
diff --git a/Xamarin.Forms.Platform.WinRT/DatePickerRenderer.cs b/Xamarin.Forms.Platform.WinRT/DatePickerRenderer.cs
index 88df5cbc..646d7d33 100644
--- a/Xamarin.Forms.Platform.WinRT/DatePickerRenderer.cs
+++ b/Xamarin.Forms.Platform.WinRT/DatePickerRenderer.cs
@@ -3,6 +3,7 @@ using System.ComponentModel;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
+using Xamarin.Forms.Internals;
#if WINDOWS_UWP
@@ -85,12 +86,12 @@ namespace Xamarin.Forms.Platform.WinRT
if (currentDate != e.NewDate.Date) // Match coerced value
UpdateDate(currentDate);
- Element.InvalidateMeasure(InvalidationTrigger.SizeRequestChanged);
+ ((IVisualElementController)Element).InvalidateMeasure(InvalidationTrigger.SizeRequestChanged);
}
void PickerOnForceInvalidate(object sender, EventArgs eventArgs)
{
- Element?.InvalidateMeasure(InvalidationTrigger.SizeRequestChanged);
+ ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.SizeRequestChanged);
}
void UpdateDate(DateTime date)
diff --git a/Xamarin.Forms.Platform.WinRT/ImageRenderer.cs b/Xamarin.Forms.Platform.WinRT/ImageRenderer.cs
index 29368aaf..3807570d 100644
--- a/Xamarin.Forms.Platform.WinRT/ImageRenderer.cs
+++ b/Xamarin.Forms.Platform.WinRT/ImageRenderer.cs
@@ -3,6 +3,7 @@ using System.ComponentModel;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
+using Xamarin.Forms.Internals;
#if WINDOWS_UWP
@@ -90,7 +91,7 @@ namespace Xamarin.Forms.Platform.WinRT
void RefreshImage()
{
- Element?.InvalidateMeasure(InvalidationTrigger.RendererReady);
+ ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.RendererReady);
}
void UpdateAspect()
diff --git a/Xamarin.Forms.Platform.WinRT/NativeViewWrapperRenderer.cs b/Xamarin.Forms.Platform.WinRT/NativeViewWrapperRenderer.cs
index 0e669774..b7e70d0f 100644
--- a/Xamarin.Forms.Platform.WinRT/NativeViewWrapperRenderer.cs
+++ b/Xamarin.Forms.Platform.WinRT/NativeViewWrapperRenderer.cs
@@ -1,4 +1,5 @@
using Windows.UI.Xaml;
+using Xamarin.Forms.Internals;
#if WINDOWS_UWP
@@ -67,7 +68,7 @@ namespace Xamarin.Forms.Platform.WinRT
if (e.OldElement == null)
{
SetNativeControl(Element.NativeElement);
- Control.LayoutUpdated += (sender, args) => { Element?.InvalidateMeasure(InvalidationTrigger.MeasureChanged); };
+ Control.LayoutUpdated += (sender, args) => { ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.MeasureChanged); };
}
}
}
diff --git a/Xamarin.Forms.Platform.WinRT/PickerRenderer.cs b/Xamarin.Forms.Platform.WinRT/PickerRenderer.cs
index e37b79a1..7095333a 100644
--- a/Xamarin.Forms.Platform.WinRT/PickerRenderer.cs
+++ b/Xamarin.Forms.Platform.WinRT/PickerRenderer.cs
@@ -5,6 +5,7 @@ using Windows.UI.Core;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
+using Xamarin.Forms.Internals;
#if WINDOWS_UWP
@@ -97,7 +98,7 @@ namespace Xamarin.Forms.Platform.WinRT
if (!Control.IsFullScreen)
{
// Force a final redraw after the closing animation has completed
- Element?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
}
}
@@ -119,7 +120,7 @@ namespace Xamarin.Forms.Platform.WinRT
}
else
{
- Element?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
}
}
else
@@ -127,7 +128,7 @@ namespace Xamarin.Forms.Platform.WinRT
// The ComboBox is now closed; if we were animating the closure, stop
_isAnimating = false;
// and force the final redraw
- Element?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
}
}
@@ -144,7 +145,7 @@ namespace Xamarin.Forms.Platform.WinRT
while (_isAnimating)
{
await Task.Delay(16);
- await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => Element?.InvalidateMeasure(InvalidationTrigger.MeasureChanged));
+ await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.MeasureChanged));
}
});
}
diff --git a/Xamarin.Forms.Platform.WinRT/ProgressBarRenderer.cs b/Xamarin.Forms.Platform.WinRT/ProgressBarRenderer.cs
index 87f1e35e..b805b2f6 100644
--- a/Xamarin.Forms.Platform.WinRT/ProgressBarRenderer.cs
+++ b/Xamarin.Forms.Platform.WinRT/ProgressBarRenderer.cs
@@ -1,5 +1,6 @@
using System.ComponentModel;
using Windows.UI.Xaml.Controls.Primitives;
+using Xamarin.Forms.Internals;
#if WINDOWS_UWP
@@ -53,7 +54,7 @@ namespace Xamarin.Forms.Platform.WinRT
void ProgressBarOnValueChanged(object sender, RangeBaseValueChangedEventArgs rangeBaseValueChangedEventArgs)
{
- Element?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
}
}
} \ No newline at end of file
diff --git a/Xamarin.Forms.Platform.WinRT/TimePickerRenderer.cs b/Xamarin.Forms.Platform.WinRT/TimePickerRenderer.cs
index 8c878b29..0095cdc4 100644
--- a/Xamarin.Forms.Platform.WinRT/TimePickerRenderer.cs
+++ b/Xamarin.Forms.Platform.WinRT/TimePickerRenderer.cs
@@ -3,6 +3,7 @@ using System.ComponentModel;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
+using Xamarin.Forms.Internals;
#if WINDOWS_UWP
@@ -77,12 +78,12 @@ namespace Xamarin.Forms.Platform.WinRT
void OnControlTimeChanged(object sender, TimePickerValueChangedEventArgs e)
{
Element.Time = e.NewTime;
- Element?.InvalidateMeasure(InvalidationTrigger.SizeRequestChanged);
+ ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.SizeRequestChanged);
}
void PickerOnForceInvalidate(object sender, EventArgs eventArgs)
{
- Element?.InvalidateMeasure(InvalidationTrigger.SizeRequestChanged);
+ ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.SizeRequestChanged);
}
void UpdateTime()
diff --git a/Xamarin.Forms.Platform.iOS/NativeViewWrapperRenderer.cs b/Xamarin.Forms.Platform.iOS/NativeViewWrapperRenderer.cs
index b21c8593..58cacdc6 100644
--- a/Xamarin.Forms.Platform.iOS/NativeViewWrapperRenderer.cs
+++ b/Xamarin.Forms.Platform.iOS/NativeViewWrapperRenderer.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using Xamarin.Forms.Internals;
#if __UNIFIED__
using CoreGraphics;
using UIKit;
@@ -33,7 +34,7 @@ namespace Xamarin.Forms.Platform.iOS
{
if (Element?.LayoutSubViews == null)
{
- Element?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
+ ((IVisualElementController)Element)?.InvalidateMeasure(InvalidationTrigger.MeasureChanged);
base.LayoutSubviews();
return;
}
diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/InvalidationTrigger.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/InvalidationTrigger.xml
new file mode 100644
index 00000000..345d841a
--- /dev/null
+++ b/docs/Xamarin.Forms.Core/Xamarin.Forms.Internals/InvalidationTrigger.xml
@@ -0,0 +1,120 @@
+<Type Name="InvalidationTrigger" FullName="Xamarin.Forms.Internals.InvalidationTrigger">
+ <TypeSignature Language="C#" Value="public enum InvalidationTrigger" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed InvalidationTrigger extends System.Enum" />
+ <AssemblyInfo>
+ <AssemblyName>Xamarin.Forms.Core</AssemblyName>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Flags</AttributeName>
+ </Attribute>
+ </Attributes>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="HorizontalOptionsChanged">
+ <MemberSignature Language="C#" Value="HorizontalOptionsChanged" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.Internals.InvalidationTrigger HorizontalOptionsChanged = int32(2)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.Internals.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="MarginChanged">
+ <MemberSignature Language="C#" Value="MarginChanged" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.Internals.InvalidationTrigger MarginChanged = int32(32)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.Internals.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="MeasureChanged">
+ <MemberSignature Language="C#" Value="MeasureChanged" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.Internals.InvalidationTrigger MeasureChanged = int32(1)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.Internals.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="RendererReady">
+ <MemberSignature Language="C#" Value="RendererReady" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.Internals.InvalidationTrigger RendererReady = int32(16)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.Internals.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="SizeRequestChanged">
+ <MemberSignature Language="C#" Value="SizeRequestChanged" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.Internals.InvalidationTrigger SizeRequestChanged = int32(8)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.Internals.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Undefined">
+ <MemberSignature Language="C#" Value="Undefined" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.Internals.InvalidationTrigger Undefined = int32(0)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.Internals.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="VerticalOptionsChanged">
+ <MemberSignature Language="C#" Value="VerticalOptionsChanged" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.Internals.InvalidationTrigger VerticalOptionsChanged = int32(4)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.Internals.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/IVisualElementController.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/IVisualElementController.xml
index a2b63a36..0b465dc2 100644
--- a/docs/Xamarin.Forms.Core/Xamarin.Forms/IVisualElementController.xml
+++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/IVisualElementController.xml
@@ -18,6 +18,25 @@
<remarks>To be added.</remarks>
</Docs>
<Members>
+ <Member MemberName="InvalidateMeasure">
+ <MemberSignature Language="C#" Value="public void InvalidateMeasure (Xamarin.Forms.Internals.InvalidationTrigger trigger);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void InvalidateMeasure(valuetype Xamarin.Forms.Internals.InvalidationTrigger trigger) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="trigger" Type="Xamarin.Forms.Internals.InvalidationTrigger" />
+ </Parameters>
+ <Docs>
+ <param name="trigger">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
<Member MemberName="NativeSizeChanged">
<MemberSignature Language="C#" Value="public void NativeSizeChanged ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void NativeSizeChanged() cil managed" />
diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/InvalidationTrigger.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/InvalidationTrigger.xml
new file mode 100644
index 00000000..b75a5a71
--- /dev/null
+++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/InvalidationTrigger.xml
@@ -0,0 +1,120 @@
+<Type Name="InvalidationTrigger" FullName="Xamarin.Forms.InvalidationTrigger">
+ <TypeSignature Language="C#" Value="public enum InvalidationTrigger" />
+ <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed InvalidationTrigger extends System.Enum" />
+ <AssemblyInfo>
+ <AssemblyName>Xamarin.Forms.Core</AssemblyName>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <Base>
+ <BaseTypeName>System.Enum</BaseTypeName>
+ </Base>
+ <Attributes>
+ <Attribute>
+ <AttributeName>System.Flags</AttributeName>
+ </Attribute>
+ </Attributes>
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ <Members>
+ <Member MemberName="HorizontalOptionsChanged">
+ <MemberSignature Language="C#" Value="HorizontalOptionsChanged" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.InvalidationTrigger HorizontalOptionsChanged = int32(2)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="MarginChanged">
+ <MemberSignature Language="C#" Value="MarginChanged" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.InvalidationTrigger MarginChanged = int32(32)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="MeasureChanged">
+ <MemberSignature Language="C#" Value="MeasureChanged" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.InvalidationTrigger MeasureChanged = int32(1)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="RendererReady">
+ <MemberSignature Language="C#" Value="RendererReady" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.InvalidationTrigger RendererReady = int32(16)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="SizeRequestChanged">
+ <MemberSignature Language="C#" Value="SizeRequestChanged" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.InvalidationTrigger SizeRequestChanged = int32(8)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="Undefined">
+ <MemberSignature Language="C#" Value="Undefined" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.InvalidationTrigger Undefined = int32(0)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ <Member MemberName="VerticalOptionsChanged">
+ <MemberSignature Language="C#" Value="VerticalOptionsChanged" />
+ <MemberSignature Language="ILAsm" Value=".field public static literal valuetype Xamarin.Forms.InvalidationTrigger VerticalOptionsChanged = int32(4)" />
+ <MemberType>Field</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>Xamarin.Forms.InvalidationTrigger</ReturnType>
+ </ReturnValue>
+ <Docs>
+ <summary>To be added.</summary>
+ </Docs>
+ </Member>
+ </Members>
+</Type>
diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/VisualElement.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/VisualElement.xml
index bd8e615b..732f2d00 100644
--- a/docs/Xamarin.Forms.Core/Xamarin.Forms/VisualElement.xml
+++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/VisualElement.xml
@@ -512,7 +512,6 @@
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.0.0</AssemblyVersion>
<AssemblyVersion>1.5.0.0</AssemblyVersion>
- <AssemblyVersion>2.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
@@ -523,6 +522,22 @@
<remarks>To be added.</remarks>
</Docs>
</Member>
+ <Member MemberName="InvalidateMeasureInternal">
+ <MemberSignature Language="C#" Value="protected virtual void InvalidateMeasureInternal ();" />
+ <MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void InvalidateMeasureInternal() cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters />
+ <Docs>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
<Member MemberName="IsEnabled">
<MemberSignature Language="C#" Value="public bool IsEnabled { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool IsEnabled" />
@@ -1829,6 +1844,25 @@
<remarks>The x value of an element is set during the Layout phase.</remarks>
</Docs>
</Member>
+ <Member MemberName="Xamarin.Forms.IVisualElementController.InvalidateMeasure">
+ <MemberSignature Language="C#" Value="void IVisualElementController.InvalidateMeasure (Xamarin.Forms.Internals.InvalidationTrigger trigger);" />
+ <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void Xamarin.Forms.IVisualElementController.InvalidateMeasure(valuetype Xamarin.Forms.Internals.InvalidationTrigger trigger) cil managed" />
+ <MemberType>Method</MemberType>
+ <AssemblyInfo>
+ <AssemblyVersion>2.0.0.0</AssemblyVersion>
+ </AssemblyInfo>
+ <ReturnValue>
+ <ReturnType>System.Void</ReturnType>
+ </ReturnValue>
+ <Parameters>
+ <Parameter Name="trigger" Type="Xamarin.Forms.Internals.InvalidationTrigger" />
+ </Parameters>
+ <Docs>
+ <param name="trigger">To be added.</param>
+ <summary>To be added.</summary>
+ <remarks>To be added.</remarks>
+ </Docs>
+ </Member>
<Member MemberName="Xamarin.Forms.IVisualElementController.NativeSizeChanged">
<MemberSignature Language="C#" Value="void IVisualElementController.NativeSizeChanged ();" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void Xamarin.Forms.IVisualElementController.NativeSizeChanged() cil managed" />