summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.WinRT
diff options
context:
space:
mode:
authorE.Z. Hart <hartez@users.noreply.github.com>2016-10-20 14:19:27 -0600
committerJason Smith <jason.smith@xamarin.com>2016-10-20 13:19:27 -0700
commitdbd4390c5bf22a3f43a0f2f9b5defe4a76c727f4 (patch)
treeafb0e73acc7c9371cba03a582d82b812f85b6309 /Xamarin.Forms.Platform.WinRT
parent8d035988123720fce35a0cc294b4b50686412c5e (diff)
downloadxamarin-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.cs29
-rw-r--r--Xamarin.Forms.Platform.WinRT/FormsTextBox.cs2
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");
}
}