diff options
author | E.Z. Hart <hartez@users.noreply.github.com> | 2016-10-20 14:19:27 -0600 |
---|---|---|
committer | Jason Smith <jason.smith@xamarin.com> | 2016-10-20 13:19:27 -0700 |
commit | dbd4390c5bf22a3f43a0f2f9b5defe4a76c727f4 (patch) | |
tree | afb0e73acc7c9371cba03a582d82b812f85b6309 /Xamarin.Forms.Platform.WinRT | |
parent | 8d035988123720fce35a0cc294b4b50686412c5e (diff) | |
download | xamarin-forms-dbd4390c5bf22a3f43a0f2f9b5defe4a76c727f4.tar.gz xamarin-forms-dbd4390c5bf22a3f43a0f2f9b5defe4a76c727f4.tar.bz2 xamarin-forms-dbd4390c5bf22a3f43a0f2f9b5defe4a76c727f4.zip |
Make Editor focused background color behavior consistent with Entry on Windows (#456)
Diffstat (limited to 'Xamarin.Forms.Platform.WinRT')
-rw-r--r-- | Xamarin.Forms.Platform.WinRT/EditorRenderer.cs | 29 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.WinRT/FormsTextBox.cs | 2 |
2 files changed, 26 insertions, 5 deletions
diff --git a/Xamarin.Forms.Platform.WinRT/EditorRenderer.cs b/Xamarin.Forms.Platform.WinRT/EditorRenderer.cs index 7c4acfba..2fc01330 100644 --- a/Xamarin.Forms.Platform.WinRT/EditorRenderer.cs +++ b/Xamarin.Forms.Platform.WinRT/EditorRenderer.cs @@ -1,6 +1,7 @@ using System.ComponentModel; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Media; #if WINDOWS_UWP @@ -10,9 +11,10 @@ namespace Xamarin.Forms.Platform.UWP namespace Xamarin.Forms.Platform.WinRT #endif { - public class EditorRenderer : ViewRenderer<Editor, TextBox> + public class EditorRenderer : ViewRenderer<Editor, FormsTextBox> { bool _fontApplied; + Brush _backgroundColorFocusedDefaultBrush; protected override void OnElementChanged(ElementChangedEventArgs<Editor> e) { @@ -20,7 +22,12 @@ namespace Xamarin.Forms.Platform.WinRT { if (Control == null) { - var textBox = new TextBox { AcceptsReturn = true, TextWrapping = TextWrapping.Wrap }; + var textBox = new FormsTextBox + { + AcceptsReturn = true, + TextWrapping = TextWrapping.Wrap, + Style = Windows.UI.Xaml.Application.Current.Resources["FormsTextBoxStyle"] as Windows.UI.Xaml.Style + }; SetNativeControl(textBox); @@ -50,6 +57,8 @@ namespace Xamarin.Forms.Platform.WinRT protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) { + base.OnElementPropertyChanged(sender, e); + if (e.PropertyName == Editor.TextColorProperty.PropertyName) { UpdateTextColor(); @@ -70,8 +79,6 @@ namespace Xamarin.Forms.Platform.WinRT { UpdateText(); } - - base.OnElementPropertyChanged(sender, e); } void OnLostFocus(object sender, RoutedEventArgs e) @@ -79,6 +86,20 @@ namespace Xamarin.Forms.Platform.WinRT Element.SendCompleted(); } + protected override void UpdateBackgroundColor() + { + base.UpdateBackgroundColor(); + + if (Control == null) + { + return; + } + + // By default some platforms have alternate default background colors when focused + BrushHelpers.UpdateColor(Element.BackgroundColor, ref _backgroundColorFocusedDefaultBrush, + () => Control.BackgroundFocusBrush, brush => Control.BackgroundFocusBrush = brush); + } + void OnNativeTextChanged(object sender, Windows.UI.Xaml.Controls.TextChangedEventArgs args) { Element.SetValueCore(Editor.TextProperty, Control.Text); diff --git a/Xamarin.Forms.Platform.WinRT/FormsTextBox.cs b/Xamarin.Forms.Platform.WinRT/FormsTextBox.cs index 5847e0b9..593c575a 100644 --- a/Xamarin.Forms.Platform.WinRT/FormsTextBox.cs +++ b/Xamarin.Forms.Platform.WinRT/FormsTextBox.cs @@ -111,7 +111,7 @@ namespace Xamarin.Forms.Platform.WinRT if (Device.Idiom == TargetIdiom.Phone) { // If we're on the phone, we need to grab this from the template - // so we can manually handle it's background when focused + // so we can manually handle its background when focused _borderElement = (Border)GetTemplateChild("BorderElement"); } } |