图例框的垂直滚动条
Vertical scrollbar for legend box
我在 teechart 中使用图例滚动条工具来显示图例框的滚动条。现在水平滚动条在底部可见,但我正在寻找一种方法来显示图例框的垂直滚动条,在某些情况下可能包含超过 50 个图例项。
不幸的是,图例滚动条总是绘制在与图例对齐相同的位置。但是,您可以使用 属性 MaxNumRow 防止图例与底部对齐并包含大量图例项的情况下可能出现的问题。下面的代码向您展示了如何做到这一点
public Form1()
{
InitializeComponent();
InitializeChart();
}
private void InitializeChart()
{
tChart1.Aspect.View3D = false;
tChart1.Dock = DockStyle.Fill;
Steema.TeeChart.Tools.LegendScrollBar sclenged = new Steema.TeeChart.Tools.LegendScrollBar(tChart1.Chart);
for ( int i=0; i<50; i++)
{
new Steema.TeeChart.Styles.FastLine(tChart1.Chart);
tChart1[i].FillSampleValues(10);
}
tChart1.Legend.Alignment = Steema.TeeChart.LegendAlignments.Bottom;
tChart1.Legend.MaxNumRows = 3;
}
如 Sandra 所述,TeeChart 图例将滚动条放置在图例的底部,当与图表的顶部或底部对齐时水平滚动条,当与左对齐或右对齐时垂直放置在右侧。因此,垂直滚动的一个选项是将图例放置在图表的右侧。
如果您更喜欢底部的图例并且特别需要垂直滚动条,您可以通过自定义设置图例的位置和尺寸来覆盖滚动条的位置。请注意,当覆盖位置时,滚动条的水平或垂直行为仍将遵循图例的原始 Top/Bottom 或 Left/Right 对齐方式。因此,对于你想要实现的传奇,你可以这样做:
tChart1.Legend.Alignment = Steema.TeeChart.LegendAlignments.Right;
tChart1.Legend.CustomPosition = true; //Chart will now redimension, ignoring Legend location. Your responsibility now.
tChart1.Panel.MarginBottom = 35; //make room. This is % .. can set as pixels, see MarginUnits
tChart1.Legend.Left = tChart1.Axes.Left.Position; //lineup with Left Axis
tChart1.Legend.Top = tChart1.Axes.Bottom.Position + tChart1.Axes.Bottom.Labels.Font.Size + 20; //make Top relative to Chart bottom axis location
tChart1.Legend.AutoSize = false; //now set dimension you require
tChart1.Legend.Width = 130; //your settings
tChart1.Legend.Height = 70;
缺点是您无法通过这种方法获得多列(因为 Legend 仍然认为它是垂直的);之前的建议(底部图例上的 MaxNumRows)可能仍然更可取。
我在 teechart 中使用图例滚动条工具来显示图例框的滚动条。现在水平滚动条在底部可见,但我正在寻找一种方法来显示图例框的垂直滚动条,在某些情况下可能包含超过 50 个图例项。
不幸的是,图例滚动条总是绘制在与图例对齐相同的位置。但是,您可以使用 属性 MaxNumRow 防止图例与底部对齐并包含大量图例项的情况下可能出现的问题。下面的代码向您展示了如何做到这一点
public Form1()
{
InitializeComponent();
InitializeChart();
}
private void InitializeChart()
{
tChart1.Aspect.View3D = false;
tChart1.Dock = DockStyle.Fill;
Steema.TeeChart.Tools.LegendScrollBar sclenged = new Steema.TeeChart.Tools.LegendScrollBar(tChart1.Chart);
for ( int i=0; i<50; i++)
{
new Steema.TeeChart.Styles.FastLine(tChart1.Chart);
tChart1[i].FillSampleValues(10);
}
tChart1.Legend.Alignment = Steema.TeeChart.LegendAlignments.Bottom;
tChart1.Legend.MaxNumRows = 3;
}
如 Sandra 所述,TeeChart 图例将滚动条放置在图例的底部,当与图表的顶部或底部对齐时水平滚动条,当与左对齐或右对齐时垂直放置在右侧。因此,垂直滚动的一个选项是将图例放置在图表的右侧。
如果您更喜欢底部的图例并且特别需要垂直滚动条,您可以通过自定义设置图例的位置和尺寸来覆盖滚动条的位置。请注意,当覆盖位置时,滚动条的水平或垂直行为仍将遵循图例的原始 Top/Bottom 或 Left/Right 对齐方式。因此,对于你想要实现的传奇,你可以这样做:
tChart1.Legend.Alignment = Steema.TeeChart.LegendAlignments.Right;
tChart1.Legend.CustomPosition = true; //Chart will now redimension, ignoring Legend location. Your responsibility now.
tChart1.Panel.MarginBottom = 35; //make room. This is % .. can set as pixels, see MarginUnits
tChart1.Legend.Left = tChart1.Axes.Left.Position; //lineup with Left Axis
tChart1.Legend.Top = tChart1.Axes.Bottom.Position + tChart1.Axes.Bottom.Labels.Font.Size + 20; //make Top relative to Chart bottom axis location
tChart1.Legend.AutoSize = false; //now set dimension you require
tChart1.Legend.Width = 130; //your settings
tChart1.Legend.Height = 70;
缺点是您无法通过这种方法获得多列(因为 Legend 仍然认为它是垂直的);之前的建议(底部图例上的 MaxNumRows)可能仍然更可取。