if (isModifiable) {
Status status = GDIPlus.GdipSetPenMode (nativeObject, value);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
+ void GetSolidColorBrush ()
+ {
+ IntPtr native_pen_brush, cloned_brush;
+
+ Status status = GDIPlus.GdipGetPenBrushFill (nativeObject, out native_pen_brush);
+ GDIPlus.CheckStatus (status);
+ status = GDIPlus.GdipCloneBrush (native_pen_brush, out cloned_brush);
+ GDIPlus.CheckStatus (status);
+
+ //
+ // We know that the Color brushes are Solid.
+ //
+ brush = new SolidBrush (cloned_brush);
+ }
+
public Brush Brush {
get {
+ //
+ // Pens created with the color constructor have a brush,
+ // but we delay-load it, as few people need it.
+ //
+ if (brush == null)
+ GetSolidColorBrush ();
return brush;
}
color = ((SolidBrush) brush).Color;
status = GDIPlus.GdipSetPenColor (nativeObject, color.ToArgb ());
GDIPlus.CheckStatus (status);
- }
- else {
+ } else {
// other brushes should clear the color property
Status status = GDIPlus.GdipSetPenBrushFill (nativeObject, value.nativeObject);
GDIPlus.CheckStatus (status);
GDIPlus.CheckStatus (status);
color = Color.Empty;
}
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
brush = new SolidBrush (color);
status = GDIPlus.GdipSetPenBrushFill (nativeObject, brush.nativeObject);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
Status status = GDIPlus.GdipSetPenCompoundArray (nativeObject, value, value.Length);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
Status status = GDIPlus.GdipSetPenCustomEndCap (nativeObject, value.nativeObject);
GDIPlus.CheckStatus (status);
endCap = value;
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
Status status = GDIPlus.GdipSetPenCustomStartCap (nativeObject, value.nativeObject);
GDIPlus.CheckStatus (status);
startCap = value;
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
if (isModifiable) {
Status status = GDIPlus.GdipSetPenDashCap197819 (nativeObject, value);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
if (isModifiable) {
Status status = GDIPlus.GdipSetPenDashOffset (nativeObject, value);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
throw new ArgumentException ("Invalid parameter.");
Status status = GDIPlus.GdipSetPenDashArray (nativeObject, value, value.Length);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
if (isModifiable) {
Status status = GDIPlus.GdipSetPenDashStyle (nativeObject, value);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
if (isModifiable) {
Status status = GDIPlus.GdipSetPenStartCap (nativeObject, value);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
if (isModifiable) {
Status status = GDIPlus.GdipSetPenEndCap (nativeObject, value);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
if (isModifiable) {
Status status = GDIPlus.GdipSetPenLineJoin (nativeObject, value);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
if (isModifiable) {
Status status = GDIPlus.GdipSetPenMiterLimit (nativeObject, value);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
if (isModifiable) {
Status status = GDIPlus.GdipSetPenTransform (nativeObject, value.nativeMatrix);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
if (isModifiable) {
Status status = GDIPlus.GdipSetPenWidth (nativeObject, value);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}
}
if (isModifiable) {
Status status = GDIPlus.GdipSetPenLineCap197819 (nativeObject, startCap, endCap, dashCap);
GDIPlus.CheckStatus (status);
- }
- else
+ } else
throw new ArgumentException ("This Pen object can't be modified.");
}