2017-03-08 11 views
2

私はWinFormsでLiveChartを使用しています。理由はWPFを使用していない理由は、私はWPFでGUIを書き直したくないので、私はLiveChartをWinFormsで動作させることができるかどうかを調べようとしています。WinFormsライブチャートチャートタイトル

LiveChartsコントロールをイメージとしてP​​DFに保存するので、タイトルはチャート自体にある必要があります。

グラフにタイトルを追加する機能がありません。

 VisualElement title = new VisualElement(); 
     title.HorizontalAlignment = System.Windows.HorizontalAlignment.Center; 
     title.VerticalAlignment = System.Windows.VerticalAlignment.Top; 
     title.X = 0.5; 
     title.Y = maxYVal; 

     TextBlock titleText = new TextBlock(); 
     titleText.Text = chartName; 
     var newTitleFont = HelperFunctions.NewTypeFaceFromFont(titleFont); 
     titleText.FontFamily = newTitleFont.FontFamily; 
     titleText.FontStyle = newTitleFont.Style; 
     titleText.FontSize = titleFont.Size; 
     title.UIElement = titleText; 

     cartChart.VisualElements.Add(title); 

上記のコードだけ(y軸範囲)チャート自体にラベルを追加します。私が試したことは以下です。タイトルは独立している必要があります(y軸より上)。何か案が?

enter image description here

答えて

2

これはトリックを行うようだ:私が探していたものではありません

public static TableLayoutPanel AddTitleToChart(Control chart,string title, System.Drawing.Font titleFont) 
    { 

     Label label = new Label(); 
     label.AutoSize = true; 
     label.Dock = System.Windows.Forms.DockStyle.Fill; 
     label.Font = titleFont; 
     label.Location = new System.Drawing.Point(3, 0); 
     label.Name = "label1"; 
     label.Size = new System.Drawing.Size(1063, 55); 
     label.TabIndex = 0; 
     label.Text = title; 
     label.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; 
     label.BackColor = chart.BackColor; 

     chart.Dock = System.Windows.Forms.DockStyle.Fill; 

     TableLayoutPanel tableLayoutPanel = new TableLayoutPanel(); 
     tableLayoutPanel.AutoSize = true; 
     tableLayoutPanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; 
     tableLayoutPanel.BackColor = System.Drawing.Color.White; 
     tableLayoutPanel.ColumnCount = 1; 
     tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 1069F)); 
     tableLayoutPanel.Controls.Add(label, 0, 0); 
     tableLayoutPanel.Controls.Add(chart, 0, 1); 
     tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; 
     tableLayoutPanel.Location = new System.Drawing.Point(0, 0); 
     tableLayoutPanel.Name = "tableLayoutPanel1"; 
     tableLayoutPanel.RowCount = 2; 
     tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); 
     tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle()); 
     tableLayoutPanel.Size = new System.Drawing.Size(1069, 662); 
     tableLayoutPanel.TabIndex = 2; 

     return (tableLayoutPanel); 
    } 
+0

が、それはタイトルの外観の問題を解決しました。 –