VectorStyle.cs
上传用户:sex100000
上传日期:2013-11-09
资源大小:1377k
文件大小:4k
源码类别:

GIS编程

开发平台:

C#

  1. // Copyright 2005, 2006 - Morten Nielsen (www.iter.dk)
  2. //
  3. // This file is part of SharpMap.
  4. // SharpMap is free software; you can redistribute it and/or modify
  5. // it under the terms of the GNU Lesser General Public License as published by
  6. // the Free Software Foundation; either version 2 of the License, or
  7. // (at your option) any later version.
  8. // 
  9. // SharpMap is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12. // GNU Lesser General Public License for more details.
  13. // You should have received a copy of the GNU Lesser General Public License
  14. // along with SharpMap; if not, write to the Free Software
  15. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
  16. using System;
  17. using System.Collections.Generic;
  18. using System.Text;
  19. namespace SharpMap.Styles
  20. {
  21. /// <summary>
  22. /// Defines a style used for rendering vector data
  23. /// </summary>
  24. public class VectorStyle : Style
  25. {
  26. #region Privates
  27. private System.Drawing.Pen _LineStyle;
  28. private System.Drawing.Pen _OutlineStyle;
  29. private bool _Outline;
  30. private System.Drawing.Brush _FillStyle;
  31. private System.Drawing.Bitmap _Symbol;
  32. #endregion
  33. /// <summary>
  34. /// Initializes a new VectorStyle and sets the default values
  35. /// </summary>
  36. /// <remarks>
  37. /// Default style values when initialized:<br/>
  38. /// *LineStyle: 1px solid black<br/>
  39. /// *FillStyle: Solid black<br/>
  40. /// *Outline: No Outline
  41. /// *Symbol: null-reference
  42. /// </remarks>
  43. public VectorStyle()
  44. {
  45. this.Outline = new System.Drawing.Pen(System.Drawing.Color.Black, 1);
  46. this.Line = new System.Drawing.Pen(System.Drawing.Color.Black, 1);
  47. this.Fill = System.Drawing.Brushes.Black;
  48. this.EnableOutline = false;
  49. this.SymbolScale = 1f;
  50. }
  51. #region Properties
  52. /// <summary>
  53. /// Linestyle for line geometries
  54. /// </summary>
  55. public System.Drawing.Pen Line
  56. {
  57. get { return _LineStyle; }
  58. set { _LineStyle = value; }
  59. }
  60. /// <summary>
  61. /// Outline style for line and polygon geometries
  62. /// </summary>
  63. public System.Drawing.Pen Outline
  64. {
  65. get { return _OutlineStyle; }
  66. set { _OutlineStyle = value; }
  67. }
  68. /// <summary>
  69. /// Specified whether the objects are rendered with or without outlining
  70. /// </summary>
  71. public bool EnableOutline
  72. {
  73. get { return _Outline; }
  74. set { _Outline = value; }
  75. }
  76. /// <summary>
  77. /// Fillstyle for Polygon geometries
  78. /// </summary>
  79. public System.Drawing.Brush Fill
  80. {
  81. get { return _FillStyle; }
  82. set { _FillStyle = value; }
  83. }
  84. /// <summary>
  85. /// Symbol used for rendering points
  86. /// </summary>
  87. public System.Drawing.Bitmap Symbol
  88. {
  89. get { return _Symbol; }
  90. set { _Symbol = value; }
  91. }
  92. private float _SymbolScale;
  93. /// <summary>
  94. /// Scale of the symbol (defaults to 1)
  95. /// </summary>
  96. /// <remarks>
  97. /// Setting the symbolscale to '2.0' doubles the size of the symbol, where a scale of 0.5 makes the scale half the size of the original image
  98. /// </remarks>
  99. public float SymbolScale
  100. {
  101. get { return _SymbolScale; }
  102. set { _SymbolScale = value; }
  103. }
  104. private System.Drawing.PointF _SymbolOffset;
  105. /// <summary>
  106. /// Gets or sets the offset in pixels of the symbol.
  107. /// </summary>
  108. /// <remarks>
  109. /// The symbol offset is scaled with the <see cref="SymbolScale"/> property and refers to the offset af <see cref="SymbolScale"/>=1.0.
  110. /// </remarks>
  111. public System.Drawing.PointF SymbolOffset
  112. {
  113. get { return _SymbolOffset; }
  114. set { _SymbolOffset = value; }
  115. }
  116. private float _SymbolRotation;
  117. /// <summary>
  118. /// Gets or sets the rotation of the symbol in degrees (clockwise is positive)
  119. /// </summary>
  120. public float SymbolRotation
  121. {
  122. get { return _SymbolRotation; }
  123. set { _SymbolRotation = value; }
  124. }
  125. #endregion
  126. }
  127. }