DOBON.NETプログラミング道掲示板

■34181 / 親階層)  DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい
□投稿者/ Iraquser 一般人(7回)-(2019/03/04(Mon) 17:25:37)
  • アイコン環境/言語:[Win10 c#] 
    分類:[.NET] 

    いつもお世話になっております。
    ピクチャーボックスに文字列を描画する処理で発生する現象の理由が知りたくて
    投稿させて頂きます。
    
    ピクチャーボックスにDrawStringメソッドで文字列を描画する際、描画先となる
    Imageオブジェクトを事前にFillRectangleメソッドにて塗りつぶした後に描画す
    るのと、塗りつぶしをせずに描画するのとで、描画される文字の太さが変わるの
    は何故なんでしょうか。
    
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    namespace Test01 {
        public partial class Form1 : Form {
            public Form1() {
                InitializeComponent();
            }
            private PictureBox p = new PictureBox();
            private void Form1_Load(object sender, EventArgs e) {
                this.Size = new Size(300, 200);
                p.Size = this.ClientSize;
                p.Location = new Point(0, 0);
                p.BackColor = Color.White;
                p.BorderStyle = BorderStyle.FixedSingle;
                p.MouseClick += new MouseEventHandler(p_MouseClick);
                this.Controls.Add(p);
            }
            private void p_MouseClick(object sender, MouseEventArgs e) {
                Bitmap c = new Bitmap(p.Width, p.Height);
                Graphics g = Graphics.FromImage(c);
                Font f = new Font("MS UI Gothic", 20);
                if (e.Button == MouseButtons.Left) {
                    g.FillRectangle(Brushes.White, g.VisibleClipBounds);
                    g.DrawString("左ボタンを押しました。", 
                                 f, Brushes.Black, new Point(20, 20));
                } else if (e.Button == MouseButtons.Right) {
                    g.DrawString("右ボタンを押しました。", 
                                 f, Brushes.Black, new Point(20, 20));
                }
                g.Dispose();
                p.Image = c;
            }
        }
    }
    

592×201 => 250×84
イメージ
1551687937.png
/5KB
マルチポストを報告
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
親記事 →Re[1]: DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい /魔界の仮面弁士
→Re[1]: DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい /魔界の仮面弁士
 
上記関連ツリー

Nomalアイコン DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい / Iraquser (19/03/04(Mon) 17:25) #34181 1551687937.png/5KB ←Now
Nomalアイコン Re[1]: DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい / 魔界の仮面弁士 (19/03/04(Mon) 18:27) #34182
Nomalアイコン Re[1]: DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい / 魔界の仮面弁士 (19/03/05(Tue) 07:22) #34183
  └Nomalアイコン Re[2]: DrawString前のFillRectangle有無により文字の太さが違う理由について教えて下さい / Iraquser (19/03/08(Fri) 07:37) #34188 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -