チャートに複数のタイトルを同じ高さで配置するにはどうすればよいですか?VB.NET Windowsフォームのチャートで同じ高さの複数のタイトル
私が選んだパラメータに関係なく、これに似た結果が得られます。私の最後の試みはここに尋ねる前に。
スクリーンショットは、私が期待したことを証明するバックカラーのタイトルを示しています。 2タイトルを追加するたびに、WinFormsはそれらを異なる高さに自動的に配置します。
私は結果として持っているものをあなたに示すために、3.ラインがカスタム追加されています。
私はメソッドを書くことができましたが、イベントのサイズを変更するために反応し、ドッキングやアラインメントでこれを解決する必要があります。
私は、私は彼らがのChartAreaの上になりたいなどDockingOffsetsで周りいじったので、だから、今のタイトルはのChartAreaの内側にあります。私は、異なるパラメータで二回、このメソッドを呼び出すと、私のタイトルのコレクションに追加します
Friend Function CreateTitle(ByVal titleName As TitleName, ByVal chart As Chart) As Title
Dim font As Font = Nothing
Dim foreColor As Color = Nothing
Dim backColor As Color = Nothing
Dim alignment As ContentAlignment = Nothing
Dim dockingOffset As Integer
Dim name As String = String.Empty
Dim titleText As String = String.Empty
Dim dockedToChartArea As String = String.Empty
Dim docking As Docking = Nothing
' Default settings
font = New Font("Arial", 12)
foreColor = color.blue
dockingOffset = 0
dockedToChartArea = chart.ChartAreas(0).Name
' Custom settings
Select Case titleName
Case ChartControls.TitleName.ComponentName
name = TITLENAME_COMP
titleText = chart.Name
alignment = ContentAlignment.BottomLeft
dockingOffset = 0
docking = DataVisualization.Charting.Docking.Top
backColor = Color.Coral
Case ChartControls.TitleName.TrafficLight
name = TITLENAME_TRAFFICLIGHT
titleText = "+34.6%/1800 €"
alignment = ContentAlignment.TopRight
dockingOffset = 0
docking = DataVisualization.Charting.Docking.Top
backColor = Color.Beige
End Select
Dim title As New Title(titleText)
title.Name = name
title.Font = font
title.ForeColor = foreColor
title.BackColor = backColor
title.Alignment = alignment
title.Position = New ElementPosition()
title.Docking = docking
title.DockingOffset = dockingOffset
title.DockedToChartArea = dockedToChartArea
Return title
End Function
:
は、ここに私のコードです。
私の一時的な解決策は、ダミーのタイトルを追加して、チャートとチャートエリアの間にスペースを確保しています。チャートの周りにパネルを配置し、そのパネルに2つのラベルを追加します。私は、パネルの幅とラベルの幅に応じてラベルの位置を設定します。あなたが解決策に興味があるなら、私はそれを私の好みの方法ではなく答えとして入れるでしょう。とにかくうまく動作します。 –
うまくいけば、何が間違っていますか?あなたはそれに関する問題を予期していますか?もしそうなら、それはあなたにこれらの予想される問題を考慮に入れた解決策を提供するという点で知ることが重要です。 – Rodger
何も問題ありません。しかし、私は平易な古いラベルを使用して、チャートタイトルコレクションの代わりに必要に応じて配置するので、「ハッキングされた」ソリューションです。そのため、「ハッキングされていない」解決策は好ましくありません。少なくともそれが私が好むものです。 –