public void EnsureStyleAssigned() { if (Style == null && Drawing != null) { Style = Drawing.StyleManager.AssignDefaultStyle(this); } }
public static void Apply(this IFigure figure, FrameworkElement element, IFigureStyle figureStyle) { var wpfStyle = figureStyle.GetWpfStyle(figure); element.Apply(wpfStyle); figureStyle.OnApplied(figure, element); }
public IFigureStyle CreateNewStyle(Drawing drawing, IFigureStyle style) { var newStyle = style.Clone(); Actions.AddItem(drawing.ActionManager, list, newStyle); return(newStyle); }
/// <summary> /// 1. Get the type of the style being displayed /// 2. Get the list of all other styles like this one /// 3. Fill all the styles in the list /// </summary> public override void FillList() { IFigureStyle style = Value.GetValue <IFigureStyle>(); if (style == null && Value is CompositeValueProvider) { style = (Value as CompositeValueProvider).InnerList[0].GetValue <IFigureStyle>(); } if (style == null) { base.FillList(); return; } IEnumerable <IFigureStyle> allStyles = style.GetCompatibleStyles(); IFigure figure = Value.Parent as IFigure; if (figure != null && style != null) { allStyles = style.StyleManager.GetSupportedStyles(figure); } Items = allStyles.Select(s => GetGlyph(s)).ToList(); base.FillList(); }
private void OnStyleAdded(IFigureStyle style) { if (style.Name.IsEmpty()) { style.Name = GenerateUniqueName(); } style.StyleManager = this; }
private FrameworkElement GetGlyph(IFigureStyle s) { var content = s.GetSampleGlyph(); content.Margin = new Thickness(10); var result = new Grid(); result.Children.Add(content); result.Tag = s; return(result); }
protected override ValidationResult Validate(object value) { IFigureStyle style = (value as FrameworkElement).Tag as IFigureStyle; var result = new ValidationResult(); if (style != null) { result.IsValid = true; result.Value = style; } return(result); }
public IFigureStyle FindExistingOrAddNew(IFigureStyle style) { var found = list .Where(s => s.GetSignature() == style.GetSignature()) .FirstOrDefault(); if (found != null) { return(found); } Actions.AddItem(Drawing.ActionManager, list, style); return(style); }
public virtual void Remove(IFigureStyle style) { if (list.Contains(style) && list.IndexOf(style) >= numDefaultStyles) { var transaction = Transaction.Create(Drawing.ActionManager, false); foreach (var fig in Drawing.Figures) { if (fig.Style == style) { Actions.SetProperty(Drawing.ActionManager, new PropertyValue("Style", fig), AssignDefaultStyle(fig)); } } Actions.RemoveItem(Drawing.ActionManager, list, style); transaction.Commit(); } }
public virtual void WriteStyle(IFigureStyle style, XmlWriter writer) { writer.WriteStartElement(GetStyleElementName(style)); var values = valueDiscovery.GetValues(style); foreach (var value in values) { var serialized = MEFHost.Instance.SerializationService.Write(value); if (serialized != null) { writer.WriteAttributeString(value.Name, serialized.ToString()); } } writer.WriteEndElement(); }
public virtual void Add(IFigureStyle style) { list.Add(style); }
public override void ReadXml(XElement element) { // Do not use CompositeFigure.ReadXml() because there are no children to read. Children are created by constructor. Visible = element.ReadBool("Visible", true); Locked = element.ReadBool("Locked", false); IsHitTestVisible = element.ReadBool("IsHitTestVisible", true); var styleAttribute = element.Attribute("Style"); if (styleAttribute != null && Drawing != null && Drawing.StyleManager != null) { var style = Drawing.StyleManager[styleAttribute.Value]; if (style != null) { this.Arrow.Style = style; } } }
public static Style GetWpfStyle(this IFigureStyle style) { return(style.GetWpfStyle(null)); }
public Dialog(FreePointCreator parent) { this.parent = parent; this.style = parent.Drawing.StyleManager.GetStyles<PointStyle>().FirstOrDefault(); }
string GetStyleElementName(IFigureStyle style) { return style.GetType().Name; }
string GetStyleElementName(IFigureStyle style) { return(style.GetType().Name); }
public static void Apply(this IFigure figure, FrameworkElement element, IFigureStyle figureStyle) { var wpfStyle = figureStyle.GetWpfStyle(figure); element.Apply(wpfStyle); figureStyle.OnApplied(figure, element); }
public virtual void WriteStyle(IFigureStyle style, XmlWriter writer) { writer.WriteStartElement(GetStyleElementName(style)); var values = valueDiscovery.GetValues(style); foreach (var value in values) { var serialized = MEFHost.Instance.SerializationService.Write(value); if (serialized != null) { writer.WriteAttributeString(value.Name, serialized.ToString()); } } writer.WriteEndElement(); }
public virtual void AddDefaultStyles() { var freePointStyle = new PointStyle() { Fill = new SolidColorBrush(Color.FromArgb(255, 255, 255, 100)) }; var pointOnFigureStyle = new PointStyle() { Fill = new SolidColorBrush(Color.FromArgb(255, 0, 255, 0)) }; var dependentPointStyle = new PointStyle() { Name = "DependentPointStyle", Fill = new SolidColorBrush(Color.FromArgb(200, 192, 192, 192)) }; var lineStyle = new LineStyle(); var lineStyle2 = new LineStyle() { Name = "OtherLine", Color = Color.FromArgb(200, 0, 0, 255) }; var shapeWithLineStyle = new ShapeStyle(); var shapeStyle = new ShapeStyle() { Color = Colors.Transparent }; var shapeStyle2 = new ShapeStyle() { Name = "OtherShape", Color = Colors.Transparent, Fill = new SolidColorBrush(Color.FromArgb(100, 200, 255, 200)) }; var hyperLinkStyle = new TextStyle() { FontSize = 18, FontFamily = new FontFamily("Segoe UI") }; var textStyle = new TextStyle() { FontSize = 18, FontFamily = new FontFamily("Segoe UI") }; var headerStyle = new TextStyle() { FontSize = 40, FontFamily = new FontFamily("Segoe UI") }; var newStyles = new IFigureStyle[] { freePointStyle, pointOnFigureStyle, dependentPointStyle, lineStyle, lineStyle2, shapeStyle, shapeStyle2, shapeWithLineStyle, textStyle, headerStyle, hyperLinkStyle, }; list.AddRange(newStyles); numDefaultStyles = newStyles.Length; }