-using System.ComponentModel;
+using System;
+using System.ComponentModel;
using Windows.UI.Xaml;
#if WINDOWS_UWP
{
public class ActivityIndicatorRenderer : ViewRenderer<ActivityIndicator, Windows.UI.Xaml.Controls.ProgressBar>
{
+#if !WINDOWS_UWP
+ Windows.UI.Xaml.Media.SolidColorBrush _resourceBrush;
+#endif
object _foregroundDefault;
protected override void OnElementChanged(ElementChangedEventArgs<ActivityIndicator> e)
void OnControlLoaded(object sender, RoutedEventArgs routedEventArgs)
{
+#if !WINDOWS_UWP
+ _resourceBrush = (Control.Resources["ProgressBarIndeterminateForegroundThemeBrush"] as Windows.UI.Xaml.Media.SolidColorBrush);
+ _foregroundDefault = _resourceBrush.Color;
+#else
_foregroundDefault = Control.GetForegroundCache();
+#endif
UpdateColor();
}
void UpdateColor()
{
Color color = Element.Color;
+
if (color.IsDefault)
{
+#if !WINDOWS_UWP
+ _resourceBrush.Color = (Windows.UI.Color) _foregroundDefault;
+#else
Control.RestoreForegroundCache(_foregroundDefault);
+#endif
}
else
{
+#if !WINDOWS_UWP
+ _resourceBrush.Color = color.ToWindowsColor();
+#else
Control.Foreground = color.ToBrush();
+#endif
}
}