C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 124 を表示中)
■73798 / )  Chartへの文字描画時のフォント
□投稿者/ ゆっきー (1回)-(2014/11/05(Wed) 11:48:15)

分類:[VB.NET/VB2005 以降] 

Visual Basic 2010、.NET Framework 4.0で開発をしています。


ChartコントロールのPrePaintイベントで文字を描画しています。
このときChart自信の文字(X軸のラベル等)とDrawStringで描画した文字のフォント?が違います。
DrawStringで描画したフォントがBold指定しているわけでもないのに太くなっています。

DrawStringで描画した文字をChart自信の文字と合わせるにはどのようにしたら良いのでしょうか?

以下はテストしているソースコードです。
Imports System.Windows.Forms.DataVisualization.Charting

Public Class Form1

    Private Sub Chart1_PrePaint(sender As Object, e As System.Windows.Forms.DataVisualization.Charting.ChartPaintEventArgs) Handles Chart1.PrePaint

        Dim g As Graphics = e.ChartGraphics.Graphics
        Dim f As Font = New Font("Microsoft Sans Serif", 10.0)
        g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias
        g.DrawString("10", f, Brushes.Black, 0, 0)
        f.Dispose()

    End Sub

    Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load

        Dim dt As New DataTable

        dt.Columns.Add("SAMPLE_Y", Type.GetType("System.Int32"))
        dt.Columns.Add("SAMPLE_X", Type.GetType("System.Int32"))

        For i As Integer = 0 To 9
            Dim row As DataRow = dt.NewRow()
            row("SAMPLE_Y") = i
            row("SAMPLE_X") = i
            dt.Rows.Add(row)
        Next

        Chart1.Series.Clear()

        Chart1.DataSource = dt

        Dim series As New Series
        With series
            .Name = "X"
            .XValueMember = "SAMPLE_X"
            .YValueMembers = "SAMPLE_Y"
            .Color = Color.Red
        End With

        Chart1.Series.Add(series)

    End Sub

End Class

返信 編集キー/


管理者用

- Child Tree -