public void DetermineColor() { if (selected) { if (isvalid) { cBack = e.CellStyle.SelectionBackColor; cFore = e.CellStyle.SelectionForeColor; } else { cBack = Gdi::Color.Red; cFore = Gdi::Color.White; } } else { if (data == null) { cBack = Gdi::Color.Silver; cFore = Gdi::Color.Black; } else if (isvalid) { cBack = e.CellStyle.BackColor; cFore = e.CellStyle.ForeColor; } else { cBack = Gdi::Color.LavenderBlush; cFore = Gdi::Color.Red; } } }
public void Clear() { this.bgtype = ColorType.DefaultBack; this.bgcolor = Gdi::Color.Empty; this.fgtype = ColorType.DefaultText; this.fgcolor = Gdi::Color.Empty; this.style = TextDecorationStyle.None; }
public TextDecorationConstructor(TextDecoration b) { this.bgtype = b.BackColorType; this.bgcolor = b.BackColor; this.fgtype = b.TextColorType; this.fgcolor = b.TextColor; this.style = b.TextStyle; }
/// <summary> /// 矩形を塗り潰し、反転色で枠を描画します。 /// </summary> /// <param name="g">描画対象の矩形を指定します。</param> /// <param name="fill">塗り潰すのに使用する色を指定します。</param> /// <param name="rect">対象の矩形を指定します。</param> public static void FillRectangleReverseDotFramed(Gdi::Graphics g, Gdi::Color fill, Gdi::Rectangle rect) { using (Gdi::SolidBrush brush = new Gdi::SolidBrush(fill)) using (Gdi::Pen pen = new Gdi::Pen(~(afh.Drawing.Color32Argb)fill)){ pen.DashStyle = Gdi::Drawing2D.DashStyle.Dot; FillRectangleFramed(g, brush, pen, rect); } }
/// <summary> /// 指定した色の反転色で矩形枠を描画します。 /// </summary> /// <param name="g">描画対象の矩形を指定します。</param> /// <param name="fill">矩形枠の反転色を指定します。</param> /// <param name="rect">対象の矩形を指定します。</param> public static void DrawRectangleReverseDotFramed(Gdi::Graphics g, Gdi::Color fill, Gdi::Rectangle rect) { using (Gdi::Pen pen = new Gdi::Pen(~(afh.Drawing.Color32Argb)fill)){ pen.DashStyle = Gdi::Drawing2D.DashStyle.Dot; rect.Width--; rect.Height--; g.DrawRectangle(pen, rect); } }
public CellDrawer(Forms::DataGridView sender, Forms::DataGridViewCellPaintingEventArgs e) { this.sender = sender; this.e = e; this.data = this.sender.Rows[e.RowIndex].DataBoundItem as SshUserData; this.selected = 0 != (e.State & Forms::DataGridViewElementStates.Selected); this.isvalid = true; this.cBack = default(Gdi::Color); this.cFore = default(Gdi::Color); this.text = null; }
/// <summary> /// ISO 8613-6 [CCITT Recommendation T.416] "13.1.8 Select Graphic Rendition (SGR)" /// http://www.itu.int/rec/T-REC-T.416-199303-I/en /// に従って SGR の色指定 38/48 を読み取ります。 /// </summary> /// <param name="color">色を返します。</param> /// <param name="args">引数の配列を表すオブジェクトを指定します。</param> /// <param name="offset">引数内の色指定の開始位置を指定します。38 または 48 に対応する番号です。</param> /// <returns>正しい色指定の場合に、消費した引数の数を返します。色指定が誤っている場合は 0 を返します。</returns> public static int GetISO8613_6Colors(out Gdi::Color color, mwg.RosaTerm.IReadOnlyIndexer <int> args, int offset) { // 本来は引数は ":" 区切である上に、可変長である。 // 38:1 // 38:2:r:g:b:?:tol:tolc // 38:3:c:m:y:?:tol:tols // 38:4:c:m:y:k:tol:tols // 38:5:i // tol = tolerance, tols = color space associated with the tolerance if (args[offset] == 38 || args[offset] == 48) { switch (args[++offset]) { case 0: color = Gdi::Color.Empty; return(2); case 1: color = Gdi::Color.Transparent; return(2); case 2: color = Gdi::Color.FromArgb(args[offset + 1], args[offset + 2], args[offset + 3]); return(5); case 3: { int r = 255 - args[offset + 1]; int g = 255 - args[offset + 2]; int b = 255 - args[offset + 3]; color = Gdi::Color.FromArgb(r, g, b); } return(5); case 4: { int bright = 255 - args[offset + 4]; int r = (255 - args[offset + 1]) * bright / 255; int g = (255 - args[offset + 2]) * bright / 255; int b = (255 - args[offset + 3]) * bright / 255; color = Gdi::Color.FromArgb(r, g, b); } return(6); case 5: color = GetXterm256Color(args[offset + 1]); return(3); } } color = Gdi::Color.Empty; return(0); }