在我的基于 WPF 的应用程序中,我使用WPF Toolkit中提供的数据可视化图表组件。我想绘制虚线,类似于这个SO 答案中的插图:
不幸的是,这仅适用于 Windows 窗体,因为BorderDashStyle属性仅存在于 Windows 窗体版本的DataVisualization.Charting组件中,而不存在于等效的 WPF 工具包中。
我应该如何使用WPF Toolkit图表组件生成虚线?
在我的基于 WPF 的应用程序中,我使用WPF Toolkit中提供的数据可视化图表组件。我想绘制虚线,类似于这个SO 答案中的插图:
不幸的是,这仅适用于 Windows 窗体,因为BorderDashStyle属性仅存在于 Windows 窗体版本的DataVisualization.Charting组件中,而不存在于等效的 WPF 工具包中。
我应该如何使用WPF Toolkit图表组件生成虚线?
我搜索了Silverlight Toolkit图表组件的类似解决方案,并找到了这个.
幸运的是,事实证明同样的方法可以应用于 WPF。通过将属性设置为具有合适属性设置LineSeries.PolylineStyle
的样式,可以获得所需的虚线。System.Windows.Shapes.Polyline
Shape.StrokeDashArray
以编程方式,它可以通过以下方式完成:
var series = new LineSeries
{
ItemsSource = calcData,
IndependentValuePath = "X",
DependentValuePath = "Y",
PolylineStyle = GetDashedLineStyle()
};
...
Style GetDashedLineStyle()
{
var style = new Style(typeof(Polyline));
style.Setters.Add(new Setter(Shape.StrokeDashArrayProperty,
new DoubleCollection(new[] { 5.0 })));
return style;
}
在 WPF 中添加到 xaml 的另一种方法:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit"
...
<Window.Resources>
<Style x:Key="DashedPolyLine" TargetType="{x:Type Polyline}">
<Setter Property="StrokeDashArray" Value="2 3 2" />
</Style>
</Window.Resources>
...
<chartingToolkit:LineSeries Title="Title" DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding BindingValue}" PolylineStyle="{StaticResource DashedPolyLine}"/>