From e48d6d5dc145a280e955d2d0019e93a2b9b6f28d Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 13 Nov 2019 23:00:05 -0600 Subject: [PATCH 1/9] Core Changes --- .../Issue2172.xaml | 46 +++++++++++++ .../Issue2172.xaml.cs | 23 +++++++ ...rin.Forms.Controls.Issues.Shared.projitems | 12 +++- Xamarin.Forms.Platform.UAP/EditorRenderer.cs | 68 ++----------------- Xamarin.Forms.Platform.UAP/EntryRenderer.cs | 13 ++++ Xamarin.Forms.Platform.UAP/FormsTextBox.cs | 53 +++++++++++++++ Xamarin.Forms.sln.DotSettings | 1 + 7 files changed, 152 insertions(+), 64 deletions(-) create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml create mode 100644 Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml.cs diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml new file mode 100644 index 00000000000..534ff4e0014 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml.cs new file mode 100644 index 00000000000..f3a4cd99d53 --- /dev/null +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml.cs @@ -0,0 +1,23 @@ +using Xamarin.Forms.CustomAttributes; +using Xamarin.Forms.Internals; + +namespace Xamarin.Forms.Controls.Issues +{ + [Preserve(AllMembers = true)] + [Issue(IssueTracker.Github, 2172, "Height of Entry with data binding incorrect on UWP when Entry in ScrollView in Grid", PlatformAffected.UWP)] + public partial class Issue2172 : ContentPage + { + public Issue2172() + { +#if APP + InitializeComponent(); +#endif + BindingContext = new Issue2172ViewModel(); + } + + public class Issue2172ViewModel + { + public string Number => "Bound Text"; + } + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems index d8fbf18e25e..db2f227cc8b 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Xamarin.Forms.Controls.Issues.Shared.projitems @@ -23,6 +23,10 @@ + + Issue2172.xaml + Code + @@ -1640,4 +1644,10 @@ MSBuild:Compile - + + + Designer + MSBuild:Compile + + + \ No newline at end of file diff --git a/Xamarin.Forms.Platform.UAP/EditorRenderer.cs b/Xamarin.Forms.Platform.UAP/EditorRenderer.cs index 325588c6a4a..87dc362aed7 100644 --- a/Xamarin.Forms.Platform.UAP/EditorRenderer.cs +++ b/Xamarin.Forms.Platform.UAP/EditorRenderer.cs @@ -12,8 +12,6 @@ namespace Xamarin.Forms.Platform.UWP { public class EditorRenderer : ViewRenderer { - private static FormsTextBox _copyOfTextBox; - static Windows.Foundation.Size _zeroSize = new Windows.Foundation.Size(0, 0); bool _fontApplied; Brush _backgroundColorFocusedDefaultBrush; Brush _textDefaultBrush; @@ -179,74 +177,18 @@ void OnNativeTextChanged(object sender, Windows.UI.Xaml.Controls.TextChangedEven Element.SetValueCore(Editor.TextProperty, Control.Text); } - /* - * Purely invalidating the layout as text is added to the TextBox will not cause it to expand. - * If the TextBox is set to WordWrap and it is part of the layout it will refuse to Measure itself beyond its established width. - * Even giving it infinite constraints will cause it to always set its DesiredSize to the same width but with a vertical growth. - * The only way I was able to grow it was by setting layout renderers width explicitly to some value but then it just set its own Width to that Width which is not helpful. - * Even vertically it would measure oddly in cases of rapid text changes. - * Holding down the backspace key or enter key would cause the final result to be not quite right. - * Both of these issues were fixed by just creating a static TextBox that is not part of the layout which let me just measure - * the size of the text as it would fit into the TextBox unconstrained and then just return that Size from the GetDesiredSize call. - * */ - Size GetCopyOfSize(FormsTextBox control, Windows.Foundation.Size constraint) - { - if (_copyOfTextBox == null) - { - _copyOfTextBox = CreateTextBox(); - - // This causes the copy to be initially setup correctly. - // I found that if the first measure of this copy occurs with Text then it will just keep defaulting to a measure with no text. - _copyOfTextBox.Measure(_zeroSize); - } - - _copyOfTextBox.Text = control.Text; - _copyOfTextBox.FontSize = control.FontSize; - _copyOfTextBox.FontFamily = control.FontFamily; - _copyOfTextBox.FontStretch = control.FontStretch; - _copyOfTextBox.FontStyle = control.FontStyle; - _copyOfTextBox.FontWeight = control.FontWeight; - _copyOfTextBox.Margin = control.Margin; - _copyOfTextBox.Padding = control.Padding; - - // have to reset the measure to zero before it will re-measure itself - _copyOfTextBox.Measure(_zeroSize); - _copyOfTextBox.Measure(constraint); - - Size result = new Size - ( - Math.Ceiling(_copyOfTextBox.DesiredSize.Width), - Math.Ceiling(_copyOfTextBox.DesiredSize.Height) - ); - - return result; - } - - - SizeRequest CalculateDesiredSizes(FormsTextBox control, Windows.Foundation.Size constraint, EditorAutoSizeOption sizeOption) - { - if (sizeOption == EditorAutoSizeOption.TextChanges) - { - Size result = GetCopyOfSize(control, constraint); - control.Measure(constraint); - return new SizeRequest(result); - } - else - { - control.Measure(constraint); - Size result = new Size(Math.Ceiling(control.DesiredSize.Width), Math.Ceiling(control.DesiredSize.Height)); - return new SizeRequest(result); - } - } public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint) { FormsTextBox child = Control; - if (Children.Count == 0 || child == null) + if (Children.Count == 0 || Control == null) return new SizeRequest(); - return CalculateDesiredSizes(child, new Windows.Foundation.Size(widthConstraint, heightConstraint), Element.AutoSize); + var constraint = new Windows.Foundation.Size(widthConstraint, heightConstraint); + Control.Measure(constraint); + var result = FormsTextBox.GetCopyOfSize(child, constraint); + return new SizeRequest(result); } void UpdateFont() diff --git a/Xamarin.Forms.Platform.UAP/EntryRenderer.cs b/Xamarin.Forms.Platform.UAP/EntryRenderer.cs index 02f1c7b7480..e228edc55e3 100644 --- a/Xamarin.Forms.Platform.UAP/EntryRenderer.cs +++ b/Xamarin.Forms.Platform.UAP/EntryRenderer.cs @@ -457,5 +457,18 @@ void UpdateIsReadOnly() { Control.IsReadOnly = Element.IsReadOnly; } + + public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint) + { + FormsTextBox child = Control; + + if (Children.Count == 0 || Control == null) + return new SizeRequest(); + + var constraint = new Windows.Foundation.Size(widthConstraint, heightConstraint); + Control.Measure(constraint); + var result = FormsTextBox.GetCopyOfSize(child, constraint); + return new SizeRequest(result); + } } } \ No newline at end of file diff --git a/Xamarin.Forms.Platform.UAP/FormsTextBox.cs b/Xamarin.Forms.Platform.UAP/FormsTextBox.cs index a28d9676818..c79199ed48c 100644 --- a/Xamarin.Forms.Platform.UAP/FormsTextBox.cs +++ b/Xamarin.Forms.Platform.UAP/FormsTextBox.cs @@ -403,5 +403,58 @@ internal void UpdateEnabled() WVisualStateManager.GoToState(this, state, true); } } + + /* + * This not was originally in the EditorRenderer, moved here to be shared with the entry renderer. + * It also needs to always be applied to the size calculation, not just when the box size could change. + * + * Purely invalidating the layout as text is added to the TextBox will not cause it to expand. + * If the TextBox is set to WordWrap and it is part of the layout it will refuse to Measure itself beyond its established width. + * Even giving it infinite constraints will cause it to always set its DesiredSize to the same width but with a vertical growth. + * The only way I was able to grow it was by setting layout renderers width explicitly to some value but then it just set its own Width to that Width which is not helpful. + * Even vertically it would measure oddly in cases of rapid text changes. + * Holding down the backspace key or enter key would cause the final result to be not quite right. + * Both of these issues were fixed by just creating a static TextBox that is not part of the layout which let me just measure + * the size of the text as it would fit into the TextBox unconstrained and then just return that Size from the GetDesiredSize call. + * */ + static FormsTextBox _copyOfTextBox; + static readonly Windows.Foundation.Size _zeroSize = new Windows.Foundation.Size(0, 0); + public static Size GetCopyOfSize(FormsTextBox control, Windows.Foundation.Size constraint) + { + if (_copyOfTextBox == null) + { + _copyOfTextBox = new FormsTextBox + { + Style = Windows.UI.Xaml.Application.Current.Resources["FormsTextBoxStyle"] as Windows.UI.Xaml.Style + }; + + // This causes the copy to be initially setup correctly. + // I found that if the first measure of this copy occurs with Text then it will just keep defaulting to a measure with no text. + _copyOfTextBox.Measure(_zeroSize); + } + + _copyOfTextBox.TextWrapping = control.TextWrapping; + _copyOfTextBox.AcceptsReturn = control.AcceptsReturn; + _copyOfTextBox.Text = control.Text; + _copyOfTextBox.FontSize = control.FontSize; + _copyOfTextBox.FontFamily = control.FontFamily; + _copyOfTextBox.FontStretch = control.FontStretch; + _copyOfTextBox.FontStyle = control.FontStyle; + _copyOfTextBox.FontWeight = control.FontWeight; + _copyOfTextBox.Margin = control.Margin; + _copyOfTextBox.Padding = control.Padding; + + // have to reset the measure to zero before it will re-measure itself + _copyOfTextBox.Measure(_zeroSize); + _copyOfTextBox.Measure(constraint); + + var result = new Size + ( + Math.Ceiling(_copyOfTextBox.DesiredSize.Width), + Math.Ceiling(_copyOfTextBox.DesiredSize.Height) + ); + + return result; + } } } \ No newline at end of file diff --git a/Xamarin.Forms.sln.DotSettings b/Xamarin.Forms.sln.DotSettings index 9711a3baee2..1c92257d695 100644 --- a/Xamarin.Forms.sln.DotSettings +++ b/Xamarin.Forms.sln.DotSettings @@ -669,6 +669,7 @@ 1 True True + True True True True From 24dc9342bd5b0046ca39f2a06afd998e5694ed12 Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 13 Nov 2019 23:18:50 -0600 Subject: [PATCH 2/9] Recreate Previous Behavior for issue page --- .../CustomRenderers.cs | 109 +++++++++++++++++- .../Issue2172.xaml | 17 +-- .../Issue2172.xaml.cs | 10 ++ 3 files changed, 128 insertions(+), 8 deletions(-) diff --git a/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs b/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs index f448e34384f..5be8d1ebe40 100644 --- a/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs +++ b/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs @@ -1,5 +1,7 @@ -using System.ComponentModel; +using System; +using System.ComponentModel; using System.Linq; +using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; @@ -12,6 +14,8 @@ [assembly: ExportRenderer(typeof(Issue1683.EntryKeyboardFlags), typeof(EntryRendererKeyboardFlags))] [assembly: ExportRenderer(typeof(Issue1683.EditorKeyboardFlags), typeof(EditorRendererKeyboardFlags))] [assembly: ExportRenderer(typeof(Issue3273.SortableListView), typeof(SortableListViewRenderer))] +[assembly: ExportRenderer(typeof(Issue2172OldEntry), typeof(Issue2172OldEntryRenderer))] +[assembly: ExportRenderer(typeof(Issue2172OldEditor), typeof(Issue2172OldEditorRenderer))] namespace Xamarin.Forms.ControlGallery.WindowsUniversal { public class EntryRendererKeyboardFlags : EntryRenderer @@ -163,4 +167,107 @@ protected override void OnElementChanged(ElementChangedEventArgs e) m_Canvas.Children.Add(text); } } + + public class Issue2172OldEntryRenderer : EntryRenderer + { + public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint) + { + if (Children.Count == 0 || Control == null) + return new SizeRequest(); + + var constraint = new Windows.Foundation.Size(widthConstraint, heightConstraint); + FormsTextBox child = Control; + + child.Measure(constraint); + var result = new Size(Math.Ceiling(child.DesiredSize.Width), Math.Ceiling(child.DesiredSize.Height)); + + return new SizeRequest(result); + } + } + + public class Issue2172OldEditorRenderer : EditorRenderer + { + private static FormsTextBox _copyOfTextBox; + static Windows.Foundation.Size _zeroSize = new Windows.Foundation.Size(0, 0); + + FormsTextBox CreateTextBox() + { + return new FormsTextBox + { + AcceptsReturn = true, + TextWrapping = TextWrapping.Wrap, + Style = Windows.UI.Xaml.Application.Current.Resources["FormsTextBoxStyle"] as Windows.UI.Xaml.Style + }; + } + + /* + * Purely invalidating the layout as text is added to the TextBox will not cause it to expand. + * If the TextBox is set to WordWrap and it is part of the layout it will refuse to Measure itself beyond its established width. + * Even giving it infinite constraints will cause it to always set its DesiredSize to the same width but with a vertical growth. + * The only way I was able to grow it was by setting layout renderers width explicitly to some value but then it just set its own Width to that Width which is not helpful. + * Even vertically it would measure oddly in cases of rapid text changes. + * Holding down the backspace key or enter key would cause the final result to be not quite right. + * Both of these issues were fixed by just creating a static TextBox that is not part of the layout which let me just measure + * the size of the text as it would fit into the TextBox unconstrained and then just return that Size from the GetDesiredSize call. + * */ + Size GetCopyOfSize(FormsTextBox control, Windows.Foundation.Size constraint) + { + if (_copyOfTextBox == null) + { + _copyOfTextBox = CreateTextBox(); + + // This causes the copy to be initially setup correctly. + // I found that if the first measure of this copy occurs with Text then it will just keep defaulting to a measure with no text. + _copyOfTextBox.Measure(_zeroSize); + } + + _copyOfTextBox.Text = control.Text; + _copyOfTextBox.FontSize = control.FontSize; + _copyOfTextBox.FontFamily = control.FontFamily; + _copyOfTextBox.FontStretch = control.FontStretch; + _copyOfTextBox.FontStyle = control.FontStyle; + _copyOfTextBox.FontWeight = control.FontWeight; + _copyOfTextBox.Margin = control.Margin; + _copyOfTextBox.Padding = control.Padding; + + // have to reset the measure to zero before it will re-measure itself + _copyOfTextBox.Measure(_zeroSize); + _copyOfTextBox.Measure(constraint); + + Size result = new Size + ( + Math.Ceiling(_copyOfTextBox.DesiredSize.Width), + Math.Ceiling(_copyOfTextBox.DesiredSize.Height) + ); + + return result; + } + + + SizeRequest CalculateDesiredSizes(FormsTextBox control, Windows.Foundation.Size constraint, EditorAutoSizeOption sizeOption) + { + if (sizeOption == EditorAutoSizeOption.TextChanges) + { + Size result = GetCopyOfSize(control, constraint); + control.Measure(constraint); + return new SizeRequest(result); + } + else + { + control.Measure(constraint); + Size result = new Size(Math.Ceiling(control.DesiredSize.Width), Math.Ceiling(control.DesiredSize.Height)); + return new SizeRequest(result); + } + } + + public override SizeRequest GetDesiredSize(double widthConstraint, double heightConstraint) + { + FormsTextBox child = Control; + + if (Children.Count == 0 || child == null) + return new SizeRequest(); + + return CalculateDesiredSizes(child, new Windows.Foundation.Size(widthConstraint, heightConstraint), Element.AutoSize); + } + } } diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml index 534ff4e0014..53e71fd1e5a 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml @@ -5,11 +5,12 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:d="http://xamarin.com/schemas/2014/forms/design" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:issues="clr-namespace:Xamarin.Forms.Controls.Issues" mc:Ignorable="d" x:Class="Xamarin.Forms.Controls.Issues.Issue2172"> - + @@ -25,17 +26,19 @@ - + + + - - - + + + diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml.cs b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml.cs index f3a4cd99d53..2671327d8a9 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml.cs +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml.cs @@ -20,4 +20,14 @@ public class Issue2172ViewModel public string Number => "Bound Text"; } } + + public class Issue2172OldEntry : Entry + { + + } + + public class Issue2172OldEditor : Editor + { + + } } \ No newline at end of file From 0f491e40337c01f963f26c29b6f01a304a2e10ee Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 13 Nov 2019 23:24:36 -0600 Subject: [PATCH 3/9] Remove Resharper Setting --- Xamarin.Forms.sln.DotSettings | 676 ---------------------------------- 1 file changed, 676 deletions(-) delete mode 100644 Xamarin.Forms.sln.DotSettings diff --git a/Xamarin.Forms.sln.DotSettings b/Xamarin.Forms.sln.DotSettings deleted file mode 100644 index 1c92257d695..00000000000 --- a/Xamarin.Forms.sln.DotSettings +++ /dev/null @@ -1,676 +0,0 @@ - - Implicit - NEXT_LINE - NEXT_LINE - NEXT_LINE - 1 - 1 - NEXT_LINE - ONLY_FOR_MULTILINE - ONLY_FOR_MULTILINE - ONLY_FOR_MULTILINE - ONLY_FOR_MULTILINE - ONLY_FOR_MULTILINE - ONLY_FOR_MULTILINE - 1 - True - True - True - False - True - - True - False - False - False - False - True - True - True - False - None - <?xml version="1.0" encoding="utf-16"?> -<Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns"> - <TypePattern DisplayName="COM interfaces or structs"> - <TypePattern.Match> - <Or> - <And> - <Kind Is="Interface" /> - <Or> - <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute" /> - <HasAttribute Name="System.Runtime.InteropServices.ComImport" /> - </Or> - </And> - <Kind Is="Struct" /> - </Or> - </TypePattern.Match> - </TypePattern> - <TypePattern DisplayName="NUnit Test Fixtures" RemoveRegions="All"> - <TypePattern.Match> - <And> - <Kind Is="Class" /> - <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" /> - </And> - </TypePattern.Match> - <Entry DisplayName="Setup/Teardown Methods"> - <Entry.Match> - <And> - <Kind Is="Method" /> - <Or> - <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" /> - <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" /> - <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" /> - <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" /> - </Or> - </And> - </Entry.Match> - </Entry> - <Entry DisplayName="All other members" /> - <Entry Priority="100" DisplayName="Test Methods"> - <Entry.Match> - <And> - <Kind Is="Method" /> - <HasAttribute Name="NUnit.Framework.TestAttribute" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - </TypePattern> - <TypePattern DisplayName="Default Pattern"> - <Entry Priority="100" DisplayName="Public Delegates"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Kind Is="Delegate" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry Priority="100" DisplayName="Public Enums"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Kind Is="Enum" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Static Fields and Constants"> - <Entry.Match> - <Or> - <Kind Is="Constant" /> - <And> - <Kind Is="Field" /> - <Static /> - </And> - </Or> - </Entry.Match> - <Entry.SortBy> - <Kind Order="Constant Field" /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Fields"> - <Entry.Match> - <And> - <Kind Is="Field" /> - <Not> - <Static /> - </Not> - </And> - </Entry.Match> - <Entry.SortBy> - <Readonly /> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Constructors"> - <Entry.Match> - <Kind Is="Constructor" /> - </Entry.Match> - <Entry.SortBy> - <Static /> - <Access /> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Properties, Indexers"> - <Entry.Match> - <Or> - <Kind Is="Property" /> - <Kind Is="Indexer" /> - </Or> - </Entry.Match> - <Entry.SortBy> - <Access /> - <Name /> - </Entry.SortBy> - </Entry> - <Entry Priority="100" DisplayName="Interface Implementations"> - <Entry.Match> - <And> - <Kind Is="Member" /> - <ImplementsInterface /> - </And> - </Entry.Match> - <Entry.SortBy> - <ImplementsInterface /> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="All other members"> - <Entry.SortBy> - <Access /> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Nested Types"> - <Entry.Match> - <Kind Is="Type" /> - </Entry.Match> - </Entry> - </TypePattern> - <TypePattern DisplayName="Forms Pattern" RemoveRegions="All"> - <Region Name="Statics"> - <Entry DisplayName="Constructors"> - <Entry.Match> - <And> - <Static /> - <Kind Is="Constructor" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Public Fields"> - <Entry.Match> - <And> - <Static /> - <Kind Is="Field" /> - <Access Is="Public" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Public Events"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Static /> - <Kind Is="Event" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Public Properties"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Static /> - <Kind Is="Property" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Public Methods"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Static /> - <Kind Is="Method" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Public Other"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Static /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Internal Fields"> - <Entry.Match> - <And> - <Static /> - <Kind Is="Field" /> - <Access Is="Internal" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Internal Events"> - <Entry.Match> - <And> - <Access Is="Internal" /> - <Static /> - <Kind Is="Event" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Internal Properties"> - <Entry.Match> - <And> - <Access Is="Internal" /> - <Static /> - <Kind Is="Property" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Internal Methods"> - <Entry.Match> - <And> - <Access Is="Internal" /> - <Static /> - <Kind Is="Method" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Internal Other"> - <Entry.Match> - <And> - <Access Is="Internal" /> - <Static /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Protected Fields"> - <Entry.Match> - <And> - <Static /> - <Kind Is="Field" /> - <Access Is="Protected" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Protected Events"> - <Entry.Match> - <And> - <Access Is="Protected" /> - <Static /> - <Kind Is="Event" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Protected Properties"> - <Entry.Match> - <And> - <Access Is="Protected" /> - <Static /> - <Kind Is="Property" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Protected Methods"> - <Entry.Match> - <And> - <Access Is="Protected" /> - <Static /> - <Kind Is="Method" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Protected Other"> - <Entry.Match> - <And> - <Access Is="Protected" /> - <Static /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Private Fields"> - <Entry.Match> - <And> - <Static /> - <Kind Is="Field" /> - <Access Is="Private" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Private Events"> - <Entry.Match> - <And> - <Access Is="Private" /> - <Static /> - <Kind Is="Event" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Private Properties"> - <Entry.Match> - <And> - <Access Is="Private" /> - <Static /> - <Kind Is="Property" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Private Methods"> - <Entry.Match> - <And> - <Access Is="Private" /> - <Static /> - <Kind Is="Method" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Private Other"> - <Entry.Match> - <And> - <Access Is="Private" /> - <Static /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - </Region> - <Entry DisplayName="Constructors"> - <Entry.Match> - <And> - <Kind Is="Constructor" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Public Fields"> - <Entry.Match> - <And> - <Kind Is="Field" /> - <Access Is="Public" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Public Events"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Kind Is="Event" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Public Properties"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Kind Is="Property" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Public Methods"> - <Entry.Match> - <And> - <Access Is="Public" /> - <Kind Is="Method" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Other"> - <Entry.Match> - <And> - <Access Is="Public" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Internal Fields"> - <Entry.Match> - <And> - <Kind Is="Field" /> - <Access Is="Internal" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Internal Events"> - <Entry.Match> - <And> - <Access Is="Internal" /> - <Kind Is="Event" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Internal Properties"> - <Entry.Match> - <And> - <Access Is="Internal" /> - <Kind Is="Property" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Internal Methods"> - <Entry.Match> - <And> - <Access Is="Internal" /> - <Kind Is="Method" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Internal Other"> - <Entry.Match> - <And> - <Access Is="Internal" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Protected Fields"> - <Entry.Match> - <And> - <Kind Is="Field" /> - <Access Is="Protected" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Protected Events"> - <Entry.Match> - <And> - <Access Is="Protected" /> - <Kind Is="Event" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Protected Properties"> - <Entry.Match> - <And> - <Access Is="Protected" /> - <Kind Is="Property" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Protected Methods"> - <Entry.Match> - <And> - <Access Is="Protected" /> - <Kind Is="Method" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Protected Other"> - <Entry.Match> - <And> - <Access Is="Protected" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Private Fields"> - <Entry.Match> - <And> - <Kind Is="Field" /> - <Access Is="Private" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Kind Is="Member" /> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Private Events"> - <Entry.Match> - <And> - <Access Is="Private" /> - <Kind Is="Event" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Private Properties"> - <Entry.Match> - <And> - <Access Is="Private" /> - <Kind Is="Property" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Private Methods"> - <Entry.Match> - <And> - <Access Is="Private" /> - <Kind Is="Method" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Private Other"> - <Entry.Match> - <And> - <Access Is="Private" /> - </And> - </Entry.Match> - <Entry.SortBy> - <Name /> - </Entry.SortBy> - </Entry> - <Entry DisplayName="Other Members" /> - </TypePattern> -</Patterns> - UI - WP8 - API - <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> - <Policy Inspect="True" Prefix="s_" Suffix="" Style="aaBb" /> - UseVarWhenEvident - UseVarWhenEvident - UseVarWhenEvident - <Policy Inspect="True" Prefix="s_" Suffix="" Style="aaBb" /> - True - True - 1 - True - True - True - True - True - True - True \ No newline at end of file From c3c82ad58bc1eceadc1f2c6620fa3638da8b32b1 Mon Sep 17 00:00:00 2001 From: Brian Date: Thu, 14 Nov 2019 08:37:29 -0600 Subject: [PATCH 4/9] Fixed control value cache and updated issue instructions --- .../Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml | 6 +++--- Xamarin.Forms.Platform.UAP/EditorRenderer.cs | 4 ++-- Xamarin.Forms.Platform.UAP/EntryRenderer.cs | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml index 53e71fd1e5a..8a10ac14e94 100644 --- a/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml +++ b/Xamarin.Forms.Controls.Issues/Xamarin.Forms.Controls.Issues.Shared/Issue2172.xaml @@ -11,7 +11,7 @@ - + @@ -28,8 +28,8 @@ - - + + diff --git a/Xamarin.Forms.Platform.UAP/EditorRenderer.cs b/Xamarin.Forms.Platform.UAP/EditorRenderer.cs index 87dc362aed7..45bea5bcb5d 100644 --- a/Xamarin.Forms.Platform.UAP/EditorRenderer.cs +++ b/Xamarin.Forms.Platform.UAP/EditorRenderer.cs @@ -182,11 +182,11 @@ public override SizeRequest GetDesiredSize(double widthConstraint, double height { FormsTextBox child = Control; - if (Children.Count == 0 || Control == null) + if (Children.Count == 0 || child == null) return new SizeRequest(); var constraint = new Windows.Foundation.Size(widthConstraint, heightConstraint); - Control.Measure(constraint); + child.Measure(constraint); var result = FormsTextBox.GetCopyOfSize(child, constraint); return new SizeRequest(result); } diff --git a/Xamarin.Forms.Platform.UAP/EntryRenderer.cs b/Xamarin.Forms.Platform.UAP/EntryRenderer.cs index e228edc55e3..3dd36e7b783 100644 --- a/Xamarin.Forms.Platform.UAP/EntryRenderer.cs +++ b/Xamarin.Forms.Platform.UAP/EntryRenderer.cs @@ -462,11 +462,11 @@ public override SizeRequest GetDesiredSize(double widthConstraint, double height { FormsTextBox child = Control; - if (Children.Count == 0 || Control == null) + if (Children.Count == 0 || child == null) return new SizeRequest(); var constraint = new Windows.Foundation.Size(widthConstraint, heightConstraint); - Control.Measure(constraint); + child.Measure(constraint); var result = FormsTextBox.GetCopyOfSize(child, constraint); return new SizeRequest(result); } From 7713e041668568b0e0a5d727dd15c45ba304237c Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 15 Nov 2019 15:15:18 -0600 Subject: [PATCH 5/9] Fix Typo --- Xamarin.Forms.Platform.UAP/FormsTextBox.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Xamarin.Forms.Platform.UAP/FormsTextBox.cs b/Xamarin.Forms.Platform.UAP/FormsTextBox.cs index c79199ed48c..28f6620e802 100644 --- a/Xamarin.Forms.Platform.UAP/FormsTextBox.cs +++ b/Xamarin.Forms.Platform.UAP/FormsTextBox.cs @@ -405,7 +405,7 @@ internal void UpdateEnabled() } /* - * This not was originally in the EditorRenderer, moved here to be shared with the entry renderer. + * This was originally in the EditorRenderer, moved here to be shared with the entry renderer. * It also needs to always be applied to the size calculation, not just when the box size could change. * * Purely invalidating the layout as text is added to the TextBox will not cause it to expand. From fc4da64da350c0ed0db2579ae18f5fb94faa94d1 Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 15 Nov 2019 15:29:54 -0600 Subject: [PATCH 6/9] Add copy of min/max height/width to measure copy --- Xamarin.Forms.Platform.UAP/FormsTextBox.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Xamarin.Forms.Platform.UAP/FormsTextBox.cs b/Xamarin.Forms.Platform.UAP/FormsTextBox.cs index 28f6620e802..ac0471aa9d6 100644 --- a/Xamarin.Forms.Platform.UAP/FormsTextBox.cs +++ b/Xamarin.Forms.Platform.UAP/FormsTextBox.cs @@ -433,6 +433,10 @@ public static Size GetCopyOfSize(FormsTextBox control, Windows.Foundation.Size c _copyOfTextBox.Measure(_zeroSize); } + _copyOfTextBox.MinHeight = control.MinHeight; + _copyOfTextBox.MaxHeight = control.MaxHeight; + _copyOfTextBox.MinWidth = control.MinWidth; + _copyOfTextBox.MaxWidth = control.MaxWidth; _copyOfTextBox.TextWrapping = control.TextWrapping; _copyOfTextBox.AcceptsReturn = control.AcceptsReturn; _copyOfTextBox.Text = control.Text; From 299a345477c3e3156b7008ea7355330bc4325927 Mon Sep 17 00:00:00 2001 From: Brian Macomber Date: Mon, 18 Nov 2019 11:01:32 -0600 Subject: [PATCH 7/9] Update Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs Co-Authored-By: Gerald Versluis --- .../CustomRenderers.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs b/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs index 5be8d1ebe40..bbf6ec9b163 100644 --- a/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs +++ b/Xamarin.Forms.ControlGallery.WindowsUniversal/CustomRenderers.cs @@ -187,7 +187,7 @@ public override SizeRequest GetDesiredSize(double widthConstraint, double height public class Issue2172OldEditorRenderer : EditorRenderer { - private static FormsTextBox _copyOfTextBox; + static FormsTextBox _copyOfTextBox; static Windows.Foundation.Size _zeroSize = new Windows.Foundation.Size(0, 0); FormsTextBox CreateTextBox() From f1ce81d67e793d687003245ccac9d00a96e4c5b7 Mon Sep 17 00:00:00 2001 From: Brian Date: Wed, 13 Nov 2019 23:24:36 -0600 Subject: [PATCH 8/9] Revert "Remove Resharper Setting" This reverts commit 0f491e40337c01f963f26c29b6f01a304a2e10ee. --- Xamarin.Forms.sln.DotSettings | 676 ++++++++++++++++++++++++++++++++++ 1 file changed, 676 insertions(+) create mode 100644 Xamarin.Forms.sln.DotSettings diff --git a/Xamarin.Forms.sln.DotSettings b/Xamarin.Forms.sln.DotSettings new file mode 100644 index 00000000000..1c92257d695 --- /dev/null +++ b/Xamarin.Forms.sln.DotSettings @@ -0,0 +1,676 @@ + + Implicit + NEXT_LINE + NEXT_LINE + NEXT_LINE + 1 + 1 + NEXT_LINE + ONLY_FOR_MULTILINE + ONLY_FOR_MULTILINE + ONLY_FOR_MULTILINE + ONLY_FOR_MULTILINE + ONLY_FOR_MULTILINE + ONLY_FOR_MULTILINE + 1 + True + True + True + False + True + + True + False + False + False + False + True + True + True + False + None + <?xml version="1.0" encoding="utf-16"?> +<Patterns xmlns="urn:schemas-jetbrains-com:member-reordering-patterns"> + <TypePattern DisplayName="COM interfaces or structs"> + <TypePattern.Match> + <Or> + <And> + <Kind Is="Interface" /> + <Or> + <HasAttribute Name="System.Runtime.InteropServices.InterfaceTypeAttribute" /> + <HasAttribute Name="System.Runtime.InteropServices.ComImport" /> + </Or> + </And> + <Kind Is="Struct" /> + </Or> + </TypePattern.Match> + </TypePattern> + <TypePattern DisplayName="NUnit Test Fixtures" RemoveRegions="All"> + <TypePattern.Match> + <And> + <Kind Is="Class" /> + <HasAttribute Name="NUnit.Framework.TestFixtureAttribute" Inherited="True" /> + </And> + </TypePattern.Match> + <Entry DisplayName="Setup/Teardown Methods"> + <Entry.Match> + <And> + <Kind Is="Method" /> + <Or> + <HasAttribute Name="NUnit.Framework.SetUpAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.TearDownAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.FixtureSetUpAttribute" Inherited="True" /> + <HasAttribute Name="NUnit.Framework.FixtureTearDownAttribute" Inherited="True" /> + </Or> + </And> + </Entry.Match> + </Entry> + <Entry DisplayName="All other members" /> + <Entry Priority="100" DisplayName="Test Methods"> + <Entry.Match> + <And> + <Kind Is="Method" /> + <HasAttribute Name="NUnit.Framework.TestAttribute" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + </TypePattern> + <TypePattern DisplayName="Default Pattern"> + <Entry Priority="100" DisplayName="Public Delegates"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Delegate" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry Priority="100" DisplayName="Public Enums"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Enum" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Static Fields and Constants"> + <Entry.Match> + <Or> + <Kind Is="Constant" /> + <And> + <Kind Is="Field" /> + <Static /> + </And> + </Or> + </Entry.Match> + <Entry.SortBy> + <Kind Order="Constant Field" /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Fields"> + <Entry.Match> + <And> + <Kind Is="Field" /> + <Not> + <Static /> + </Not> + </And> + </Entry.Match> + <Entry.SortBy> + <Readonly /> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Constructors"> + <Entry.Match> + <Kind Is="Constructor" /> + </Entry.Match> + <Entry.SortBy> + <Static /> + <Access /> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Properties, Indexers"> + <Entry.Match> + <Or> + <Kind Is="Property" /> + <Kind Is="Indexer" /> + </Or> + </Entry.Match> + <Entry.SortBy> + <Access /> + <Name /> + </Entry.SortBy> + </Entry> + <Entry Priority="100" DisplayName="Interface Implementations"> + <Entry.Match> + <And> + <Kind Is="Member" /> + <ImplementsInterface /> + </And> + </Entry.Match> + <Entry.SortBy> + <ImplementsInterface /> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="All other members"> + <Entry.SortBy> + <Access /> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Nested Types"> + <Entry.Match> + <Kind Is="Type" /> + </Entry.Match> + </Entry> + </TypePattern> + <TypePattern DisplayName="Forms Pattern" RemoveRegions="All"> + <Region Name="Statics"> + <Entry DisplayName="Constructors"> + <Entry.Match> + <And> + <Static /> + <Kind Is="Constructor" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Public Fields"> + <Entry.Match> + <And> + <Static /> + <Kind Is="Field" /> + <Access Is="Public" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Public Events"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Static /> + <Kind Is="Event" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Public Properties"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Static /> + <Kind Is="Property" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Public Methods"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Static /> + <Kind Is="Method" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Public Other"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Static /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Internal Fields"> + <Entry.Match> + <And> + <Static /> + <Kind Is="Field" /> + <Access Is="Internal" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Internal Events"> + <Entry.Match> + <And> + <Access Is="Internal" /> + <Static /> + <Kind Is="Event" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Internal Properties"> + <Entry.Match> + <And> + <Access Is="Internal" /> + <Static /> + <Kind Is="Property" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Internal Methods"> + <Entry.Match> + <And> + <Access Is="Internal" /> + <Static /> + <Kind Is="Method" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Internal Other"> + <Entry.Match> + <And> + <Access Is="Internal" /> + <Static /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Protected Fields"> + <Entry.Match> + <And> + <Static /> + <Kind Is="Field" /> + <Access Is="Protected" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Protected Events"> + <Entry.Match> + <And> + <Access Is="Protected" /> + <Static /> + <Kind Is="Event" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Protected Properties"> + <Entry.Match> + <And> + <Access Is="Protected" /> + <Static /> + <Kind Is="Property" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Protected Methods"> + <Entry.Match> + <And> + <Access Is="Protected" /> + <Static /> + <Kind Is="Method" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Protected Other"> + <Entry.Match> + <And> + <Access Is="Protected" /> + <Static /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Private Fields"> + <Entry.Match> + <And> + <Static /> + <Kind Is="Field" /> + <Access Is="Private" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Private Events"> + <Entry.Match> + <And> + <Access Is="Private" /> + <Static /> + <Kind Is="Event" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Private Properties"> + <Entry.Match> + <And> + <Access Is="Private" /> + <Static /> + <Kind Is="Property" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Private Methods"> + <Entry.Match> + <And> + <Access Is="Private" /> + <Static /> + <Kind Is="Method" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Private Other"> + <Entry.Match> + <And> + <Access Is="Private" /> + <Static /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + </Region> + <Entry DisplayName="Constructors"> + <Entry.Match> + <And> + <Kind Is="Constructor" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Public Fields"> + <Entry.Match> + <And> + <Kind Is="Field" /> + <Access Is="Public" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Public Events"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Event" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Public Properties"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Property" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Public Methods"> + <Entry.Match> + <And> + <Access Is="Public" /> + <Kind Is="Method" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Other"> + <Entry.Match> + <And> + <Access Is="Public" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Internal Fields"> + <Entry.Match> + <And> + <Kind Is="Field" /> + <Access Is="Internal" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Internal Events"> + <Entry.Match> + <And> + <Access Is="Internal" /> + <Kind Is="Event" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Internal Properties"> + <Entry.Match> + <And> + <Access Is="Internal" /> + <Kind Is="Property" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Internal Methods"> + <Entry.Match> + <And> + <Access Is="Internal" /> + <Kind Is="Method" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Internal Other"> + <Entry.Match> + <And> + <Access Is="Internal" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Protected Fields"> + <Entry.Match> + <And> + <Kind Is="Field" /> + <Access Is="Protected" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Protected Events"> + <Entry.Match> + <And> + <Access Is="Protected" /> + <Kind Is="Event" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Protected Properties"> + <Entry.Match> + <And> + <Access Is="Protected" /> + <Kind Is="Property" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Protected Methods"> + <Entry.Match> + <And> + <Access Is="Protected" /> + <Kind Is="Method" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Protected Other"> + <Entry.Match> + <And> + <Access Is="Protected" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Private Fields"> + <Entry.Match> + <And> + <Kind Is="Field" /> + <Access Is="Private" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Kind Is="Member" /> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Private Events"> + <Entry.Match> + <And> + <Access Is="Private" /> + <Kind Is="Event" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Private Properties"> + <Entry.Match> + <And> + <Access Is="Private" /> + <Kind Is="Property" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Private Methods"> + <Entry.Match> + <And> + <Access Is="Private" /> + <Kind Is="Method" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Private Other"> + <Entry.Match> + <And> + <Access Is="Private" /> + </And> + </Entry.Match> + <Entry.SortBy> + <Name /> + </Entry.SortBy> + </Entry> + <Entry DisplayName="Other Members" /> + </TypePattern> +</Patterns> + UI + WP8 + API + <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="s_" Suffix="" Style="aaBb" /> + UseVarWhenEvident + UseVarWhenEvident + UseVarWhenEvident + <Policy Inspect="True" Prefix="s_" Suffix="" Style="aaBb" /> + True + True + 1 + True + True + True + True + True + True + True \ No newline at end of file From 149a10c24839252f06a9d571d39ec64ee12acaa5 Mon Sep 17 00:00:00 2001 From: Brian Date: Tue, 10 Dec 2019 21:11:07 -0600 Subject: [PATCH 9/9] Reset dot settings to master --- Xamarin.Forms.sln.DotSettings | 1 - 1 file changed, 1 deletion(-) diff --git a/Xamarin.Forms.sln.DotSettings b/Xamarin.Forms.sln.DotSettings index 1c92257d695..9711a3baee2 100644 --- a/Xamarin.Forms.sln.DotSettings +++ b/Xamarin.Forms.sln.DotSettings @@ -669,7 +669,6 @@ 1 True True - True True True True