diff options
Diffstat (limited to 'Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs')
-rw-r--r-- | Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs | 36 |
1 files changed, 8 insertions, 28 deletions
diff --git a/Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs b/Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs index a71041da..b37978d0 100644 --- a/Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs +++ b/Xamarin.Forms.Platform.WP8/SearchBarRenderer.cs @@ -117,20 +117,8 @@ namespace Xamarin.Forms.Platform.WinPhone void UpdatePlaceholderColor() { - Color placeholderColor = Element.PlaceholderColor; - - if (placeholderColor.IsDefault) - { - if (_defaultPlaceholderColorBrush == null) - return; - - Control.PlaceholderForegroundBrush = _defaultPlaceholderColorBrush; - } - - if (_defaultPlaceholderColorBrush == null) - _defaultPlaceholderColorBrush = Control.PlaceholderForegroundBrush; - - Control.PlaceholderForegroundBrush = placeholderColor.ToBrush(); + BrushHelpers.UpdateColor(Element.PlaceholderColor, ref _defaultPlaceholderColorBrush, + () => Control.PlaceholderForegroundBrush, brush => Control.PlaceholderForegroundBrush = brush); } void UpdateText() @@ -140,20 +128,12 @@ namespace Xamarin.Forms.Platform.WinPhone void UpdateTextColor() { - Color textColor = Element.TextColor; - - if (textColor.IsDefault) - { - if (_defaultTextColorBrush == null) - return; - - Control.Foreground = _defaultTextColorBrush; - } - - if (_defaultTextColorBrush == null) - _defaultTextColorBrush = Control.Foreground; - - Control.Foreground = textColor.ToBrush(); + BrushHelpers.UpdateColor(Element.TextColor, ref _defaultTextColorBrush, + () => Control.Foreground, brush => Control.Foreground = brush); + + // Force the PhoneTextBox control to do some internal bookkeeping + // so the colors change immediately and remain changed when the control gets focus + Control.OnApplyTemplate(); } } }
\ No newline at end of file |