在我的 WPF 应用程序(使用 C# 和 Visual Studio 创建)中,我有一个 ItemsControl;这些项目是自定义类 Line 的实例。Line 类包含线的 x 和 y 坐标:
public class Line{
private double _x1, _y1, _x2, _y2;
public double X1{
get{ return _x1; }
set{ _x1 = value; }
}
public double Y1{
get{ return _y1; }
set{ _y1 = value; }
}
public double X2{
get{ return _x2; }
set{ _x2 = value; }
}
public double Y2{
get{ return _y2; }
set{ _y2 = value; }
}
}
表示 Line 实例的线(使用数据绑定)绑定到这些起点和终点。
在窗口的另一部分有一个滑块,它应该代表应用程序的比例值。现在我想要这种行为,以便当我拖动比例滑块时,线条应该根据滑块的值进行缩放。我怎样才能做到这一点?
我试图改变像这样的getter方法:
public double X1{
get{ return _x1*scale; }
set{ _x1 = value; }
}
但是我有两个问题:1)我从哪里得到“比例”值?Line 类不知道 MainWindow 或 Slider。2)我设法使用糟糕的编程风格(使用静态公共“currentSlider”属性)从滑块中获取“比例”值,如下所示:
public class MainWindow{
public static Slider currentSlider;
public MainWindow(){
InitializeComponents();
currentSlider = slider1;
}
}
然后 Line 类可以访问比例值并使用正确的比例因子创建新线。但是当我移动滑块时,线条不会更新和缩放。
那么如何使线条根据 Slider 的值进行缩放呢?