From 786343a8aed1178a577458ef585f3b4119e4e36e Mon Sep 17 00:00:00 2001 From: "Frank A. Krueger" Date: Sun, 26 Nov 2017 08:12:28 -0800 Subject: [PATCH] Fix Entry --- Ooui.Forms/Exports.cs | 1 + Ooui.Forms/Renderers/EntryRenderer.cs | 20 +++++++++++--------- Samples/ButtonXamlPage.xaml | 4 ++-- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Ooui.Forms/Exports.cs b/Ooui.Forms/Exports.cs index 566c468..c8f3f60 100644 --- a/Ooui.Forms/Exports.cs +++ b/Ooui.Forms/Exports.cs @@ -7,6 +7,7 @@ using Xamarin.Forms.Internals; [assembly: Dependency (typeof (ResourcesProvider))] [assembly: ExportRenderer (typeof (BoxView), typeof (BoxRenderer))] [assembly: ExportRenderer (typeof (Button), typeof (ButtonRenderer))] +[assembly: ExportRenderer (typeof (Entry), typeof (EntryRenderer))] [assembly: ExportRenderer (typeof (Label), typeof (LabelRenderer))] namespace Ooui.Forms diff --git a/Ooui.Forms/Renderers/EntryRenderer.cs b/Ooui.Forms/Renderers/EntryRenderer.cs index e72843d..b4e5dfd 100644 --- a/Ooui.Forms/Renderers/EntryRenderer.cs +++ b/Ooui.Forms/Renderers/EntryRenderer.cs @@ -13,17 +13,15 @@ namespace Ooui.Forms.Renderers static Size initialSize = Size.Zero; - public EntryRenderer () - { - } + IElementController ElementController => Element as IElementController; public override SizeRequest GetDesiredSize (double widthConstraint, double heightConstraint) { - return base.GetDesiredSize (widthConstraint, heightConstraint); + var size = Element.Text.MeasureSize (Element.FontFamily, Element.FontSize, Element.FontAttributes); + size = new Size (size.Width, size.Height * 1.428 + 14); + return new SizeRequest (size, size); } - IElementController ElementController => Element as IElementController; - protected override void Dispose (bool disposing) { if (_disposed) @@ -53,6 +51,10 @@ namespace Ooui.Forms.Renderers var textField = new Ooui.Input (InputType.Text); SetNativeControl (textField); + Debug.Assert (Control != null, "Control != null"); + + textField.ClassName = "form-control"; + _defaultTextColor = Colors.Black; textField.Inputted += OnEditingChanged; @@ -154,14 +156,14 @@ namespace Ooui.Forms.Renderers void UpdatePlaceholder () { - Control.Placeholder = Element.Placeholder; + Control.Placeholder = Element.Placeholder ?? ""; } void UpdateText () { // ReSharper disable once RedundantCheckBeforeAssignment - if (Control.Text != Element.Text) - Control.Text = Element.Text; + if (Control.Value != Element.Text) + Control.Value = Element.Text; } } } diff --git a/Samples/ButtonXamlPage.xaml b/Samples/ButtonXamlPage.xaml index 9fafa5f..4993bc7 100644 --- a/Samples/ButtonXamlPage.xaml +++ b/Samples/ButtonXamlPage.xaml @@ -4,8 +4,8 @@ x:Class="ButtonXaml.ButtonXamlPage"> -