Ejemplo n.º 1
0
        private static void AssertThemeColorsReadFromXaml(IBaseTheme baseTheme, string xaml)
        {
            var resourceDictionary = new ResourceDictionary();

            resourceDictionary.MergedDictionaries.Add(MdixHelper.GetResourceDictionary(xaml));
            resourceDictionary.MergedDictionaries.Add(MdixHelper.GetPrimaryColorResourceDictionary("DeepPurple"));
            resourceDictionary.MergedDictionaries.Add(MdixHelper.GetSecondaryColorResourceDictionary("Lime"));

            ITheme theme = resourceDictionary.GetTheme();

            foreach (var property in theme.GetType().GetProperties().Where(p => p.PropertyType == typeof(Color)))
            {
                var propertyColor = (Color)property.GetValue(theme) !;
                var(nameBrush, nameColor) = property.Name == "ValidationError"
                    ? ("MaterialDesignValidationErrorBrush", "MaterialDesignValidationErrorColor")
                    : ("MaterialDesign" + property.Name, "MaterialDesign" + property.Name + "Color");

                var xamlColor = ((SolidColorBrush)resourceDictionary[nameBrush]).Color;

                Assert.Equal(xamlColor, propertyColor);
            }
        }