我想在实时图表中创建一个垂直部分。我找到了这方面的示例,但使用的代码现已贬值。
这是我的起点: 找到的图片
var axisSection = new AxisSection
{
FromValue = index,
ToolTip = "dfsdf",
ToValue = index,
Stroke = Brushes.YellowGreen,
StrokeThickness = 1,
StrokeDashArray = new DoubleCollection(new[] { 4d })
};
chart.VisualElements.Add(new VisualElement
{
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Top,
UIElement = new TextBlock //notice this property must be a wpf control
{
Text = journalObj.Title,
FontWeight = FontWeights.Bold,
Foreground = Brushes.Snow,
FontSize = 12,
Opacity = 0.6
}
});
但是,我发现"FromValue"已更改为"Value","ToValue"已更改为"SectionWidth",并且创建的部分现在是水平而不是垂直的。我的代码是 vb.net 的(因为这是我正在开发的(,但这里有一个示例:
Dim axissection As New impLiveChartsWPF.AxisSection
With axissection
.Value = 1
.SectionWidth = 1
.Stroke = Brushes.YellowGreen
.StrokeThickness = 1
.StrokeDashArray = collection
End With
此代码创建一个水平框,该框在 y 轴上从 1 到 2。 需要在 X 轴上用一条垂直细线来表示参数的更改(例如系统关闭或打开(。
使截面垂直的关键点是将截面添加到 X 轴,而不是 Y 轴。 添加到 X 轴使其垂直,添加到 Y 轴使其水平。
这使得该部分垂直:
cartesianChart1.AxisX.Add(new Axis
{
Sections = new SectionsCollection
{
axisSection
}
});
或者在 VB 中:
cartesianChart1.AxisX.Add(New Axis With {
.Sections = New SectionsCollection From {
axisSection
}
})