【发布时间】:2016-04-23 06:46:16
【问题描述】:
我有 WPF 应用程序,其中我在一个画布中有一些需要虚线的线,而一些需要是法线。我的问题是 StrokeDashArray 到底是什么类型。在 msdn 中,我看到使用的是 DoubleCollection,但来自 System.Windows.Media。 如何使 StrokeDashArray 的属性在 MVVM 模式中使用良好的做法。
【问题讨论】:
我有 WPF 应用程序,其中我在一个画布中有一些需要虚线的线,而一些需要是法线。我的问题是 StrokeDashArray 到底是什么类型。在 msdn 中,我看到使用的是 DoubleCollection,但来自 System.Windows.Media。 如何使 StrokeDashArray 的属性在 MVVM 模式中使用良好的做法。
【问题讨论】:
如果你想绑定到 dash 数组,那么它是一个 DoubleCollection,所以你可以这样做:
private DoubleCollection _Dashes = new DoubleCollection { 1, 2 };
public DoubleCollection Dashes
{
get { return this._Dashes;}
set { this._Dashes = value; RaisePropertyChanged(); }
}
然后在 XAML 中:
<Line Stroke="Black" StrokeThickness="2" StrokeDashArray="{Binding Dashes}" X1="0" Y1="50" X2="100" Y2="50"/>
如果要创建 Canvas 元素的动态数组,则需要创建 ItemsControl 并将 ItemsControl.Panel 设置为 Canvas。然后,您通常会使用 Item.Template 为每个元素声明线条以及使用数据触发器在不同线条/虚线类型之间进行选择的样式。
【讨论】: