///// <summary> ///// Layer properties plot style name. ///// </summary> //public string PlotStyleName //{ // get { return this.plotStyle; } // set { this.plotStyle = value; } //} #endregion #region public methods /// <summary> /// Copy the layer to the current layer state properties. /// </summary> /// <param name="layer">Layer from which copy the properties.</param> /// <param name="options">Layer properties to copy.</param> public void CopyFrom(Layer layer, LayerPropertiesRestoreFlags options) { if (!string.Equals(this.name, layer.Name, StringComparison.OrdinalIgnoreCase)) { throw new ArgumentException("Only a layer with the same name can be copied.", nameof(layer)); } this.flags = LayerPropertiesFlags.None; if (options.HasFlag(LayerPropertiesRestoreFlags.Hidden)) { if (!layer.IsVisible) { this.flags |= LayerPropertiesFlags.Hidden; } } if (options.HasFlag(LayerPropertiesRestoreFlags.Frozen)) { if (layer.IsFrozen) { this.flags |= LayerPropertiesFlags.Frozen; } } if (options.HasFlag(LayerPropertiesRestoreFlags.Locked)) { if (layer.IsLocked) { this.flags |= LayerPropertiesFlags.Locked; } } if (options.HasFlag(LayerPropertiesRestoreFlags.Plot)) { if (layer.Plot) { this.flags |= LayerPropertiesFlags.Plot; } } if (options.HasFlag(LayerPropertiesRestoreFlags.Linetype)) { this.linetype = layer.Linetype.Name; } if (options.HasFlag(LayerPropertiesRestoreFlags.Color)) { this.color = (AciColor)layer.Color.Clone(); } if (options.HasFlag(LayerPropertiesRestoreFlags.Lineweight)) { this.lineweight = layer.Lineweight; } if (options.HasFlag(LayerPropertiesRestoreFlags.Transparency)) { this.transparency = (Transparency)layer.Transparency.Clone(); } }
/// <summary> /// Copy the current layer state properties to a layer. /// </summary> /// <param name="layer">Layer to which copy the properties.</param> /// <param name="options">Layer properties to copy.</param> public void CopyTo(Layer layer, LayerPropertiesRestoreFlags options) { if (!string.Equals(this.name, layer.Name, StringComparison.OrdinalIgnoreCase)) { throw new ArgumentException("Only a layer with the same name can be copied.", nameof(layer)); } if (options.HasFlag(LayerPropertiesRestoreFlags.Hidden)) { layer.IsVisible = !this.flags.HasFlag(LayerPropertiesFlags.Hidden); } if (options.HasFlag(LayerPropertiesRestoreFlags.Frozen)) { layer.IsFrozen = this.flags.HasFlag(LayerPropertiesFlags.Frozen); } if (options.HasFlag(LayerPropertiesRestoreFlags.Locked)) { layer.IsLocked = this.flags.HasFlag(LayerPropertiesFlags.Locked); } if (options.HasFlag(LayerPropertiesRestoreFlags.Plot)) { layer.Plot = this.flags.HasFlag(LayerPropertiesFlags.Plot); } if (options.HasFlag(LayerPropertiesRestoreFlags.Linetype)) { Linetype line = null; if (layer.Owner != null) { DxfDocument doc = layer.Owner.Owner; line = doc.Linetypes[this.LinetypeName]; } if (line == null) { line = new Linetype(this.LinetypeName); } layer.Linetype = line; } if (options.HasFlag(LayerPropertiesRestoreFlags.Color)) { layer.Color = (AciColor)this.Color.Clone(); } if (options.HasFlag(LayerPropertiesRestoreFlags.Lineweight)) { layer.Lineweight = this.Lineweight; } if (options.HasFlag(LayerPropertiesRestoreFlags.Transparency)) { layer.Transparency = (Transparency)this.Transparency.Clone(); } }