2016-10-26 2 views
0

は、C#ではなくピクセルのミリでMSチャートのサイズを設定するには、どのように私は次のコード使用してC#でミリメートルでチャートオブジェクトのサイズを設定しようとしています

var chart = new Chart(); 
chart.RenderingDpiX = 300; 
chart.RenderingDpiY = 300; 
chart.CreateGraphics().PageUnit = GraphicsUnit.Millimeter; 
chart.Size = new Size(290, 200); // meant to be 290 millimetre not pixel 
... 
chart.SaveImage(@"D:\Temp\tttt.png", ChartImageFormat.Png); 

は私が保存されてのサイズを期待しますイメージは約290 *(300/254)= 3425ピクセルですが、イメージのサイズは290ピクセルx 200ピクセルですか?

私も

private void ChartPostPaint(object sender, ChartPaintEventArgs e) 
{ 
    var g = e.ChartGraphics.Graphics; 
    g.PageUnit = GraphicsUnit.Millimeter; 
} 

を使用してpostPaintイベントでページ単位を設定しようとしました。しかし、これはどちらか動作しません!ピクセルの代わりにミリメートルまたはインチでグラフのサイズを設定する方法を教えてください。

+0

をごミリメートルを使用できることを述べているオプションはありません測定単位として使用します。あなたのためにそれを行う方法を作成しようとしましたか? – eg16

+0

MMは物理的な単位であり、実際に印刷する場合にのみ意味を持ちます。特定のdpi解像度で特定のピクセルサイズが必要な場合は、それを行うことはできますが、画面上では意味をなさない。 [RenderingDpiX/Y](https://msdn.microsoft.com/en-US/en-en/library/system.windows.forms.datavisualization.charting.chart.renderingdpix%28v=vs.110%29)。 aspx)はあなたが使用するためのものではありません!画像にDrawToBitmapとsetResolutionを使い、保存してください!また、CreateGraphicsを使用しないでください – TaW

答えて

0

Chart()のドキュメントから、デフォルトの測定単位はpxと思われます。
mmの値を与える方法の入力としてpxを使用できます。だから

private double toMM(int _px) 
{ 
    return this._px*(300/254); 
} 

を今、あなたのようなものだろう:
はあなたが書くことができるそうするためにチャートクラスの公式ドキュメントから

chart.Size = new Size(toMM(290), toMM(200)); 
関連する問題