public BrushPropertyViewModel(TargetPlatform platform, IPropertyInfo property, IEnumerable <IObjectEditor> editors) : base(platform, property, editors) { if (property.Type.IsAssignableFrom(typeof(CommonSolidBrush))) { Solid = new SolidBrushViewModel(this, property is IColorSpaced colorSpacedPropertyInfo ? colorSpacedPropertyInfo.ColorSpaces : null); if (platform.SupportsMaterialDesign) { MaterialDesign = new MaterialDesignColorViewModel(this); } } // TODO: we actually need to localize this for platforms really, "brush" doesn't make sense for some var types = new OrderedDictionary <string, CommonBrushType> { { Resources.NoBrush, CommonBrushType.NoBrush }, { Resources.SolidBrush, CommonBrushType.Solid }, { Resources.ResourceBrush, CommonBrushType.Resource } }; if (platform.SupportsMaterialDesign) { types.Insert(2, Resources.MaterialDesignColorBrush, CommonBrushType.MaterialDesign); } BrushTypes = types; RequestCurrentValueUpdate(); }
public BrushPropertyViewModel(TargetPlatform platform, IPropertyInfo property, IEnumerable <IObjectEditor> editors, PropertyVariation variation = null, IEnumerable <CommonBrushType> allowedBrushTypes = null) : base(platform, property, editors, variation) { if (property.Type.IsAssignableFrom(typeof(CommonSolidBrush)) || property.Type.IsAssignableFrom(typeof(CommonColor))) { Solid = new SolidBrushViewModel(this, property is IColorSpaced colorSpacedPropertyInfo ? colorSpacedPropertyInfo.ColorSpaces : null); if (platform.SupportsMaterialDesign) { MaterialDesign = new MaterialDesignColorViewModel(this); } } allowedBrushTypes = allowedBrushTypes ?? new[] { CommonBrushType.NoBrush, CommonBrushType.Solid, CommonBrushType.MaterialDesign, CommonBrushType.Gradient, CommonBrushType.Tile, CommonBrushType.Resource }; // TODO: we actually need to localize this for platforms really, "brush" doesn't make sense for some var types = new OrderedDictionary <string, CommonBrushType> (); if (allowedBrushTypes.Contains(CommonBrushType.NoBrush)) { types.Add(Resources.NoBrush, CommonBrushType.NoBrush); } if (allowedBrushTypes.Contains(CommonBrushType.Solid)) { types.Add(Resources.SolidBrush, CommonBrushType.Solid); } if (allowedBrushTypes.Contains(CommonBrushType.Resource) && property.ValueSources.HasFlag(ValueSources.Resource)) { types.Add(Resources.ResourceBrush, CommonBrushType.Resource); } if (platform.SupportsMaterialDesign && allowedBrushTypes.Contains(CommonBrushType.MaterialDesign)) { types.Insert(2, Resources.MaterialDesignColorBrush, CommonBrushType.MaterialDesign); } BrushTypes = types; RequestCurrentValueUpdate(); }