我有 WPF 应用程序,我在一个 Canvas 中有一些线需要是虚线,而一些需要是普通线。我的问题是 StrokeDashArray 到底是什么类型。在 msdn 中,我看到使用的是 DoubleCollection,但来自 System.Windows.Media。
如何使 StrokeDashArray 的属性在 MVVM 模式中使用良好的实践。
最佳答案
如果你想绑定(bind)到 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 来声明每个元素的线条以及使用数据触发器在不同线条/破折号类型之间进行选择的样式。
关于c# - 如何在 MVVM 模式 wpf 中绑定(bind) StrokeDashArray 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34848935/