wpf平面图形 实现矩形,椭圆,虚线(蚂蚁线效果)的实现

StrokeDashOffset 是int类型 设置这个属性不同的值就可以实现蚂蚁线效果

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现这个功能,可以参考以下步骤: 1. 在 View 中,定义一个矩形和一个鼠标事件处理函数,用于处理鼠标移动事件。 ```xml <Canvas> <Rectangle Width="{Binding Width}" Height="{Binding Height}" Stroke="Black" StrokeThickness="1" /> <Canvas Background="Transparent" MouseMove="Canvas_MouseMove" MouseUp="Canvas_MouseUp" /> </Canvas> ``` 2. 在 ViewModel 中,定义 Width 和 Height 属性,以及鼠标事件处理函数。 ```csharp public class RectangleViewModel : INotifyPropertyChanged { private double _width; private double _height; private Point _startPoint; public double Width { get { return _width; } set { _width = value; OnPropertyChanged(); } } public double Height { get { return _height; } set { _height = value; OnPropertyChanged(); } } public void Canvas_MouseMove(object sender, MouseEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { var endPoint = e.GetPosition(sender as IInputElement); Width = Math.Abs(endPoint.X - _startPoint.X); Height = Math.Abs(endPoint.Y - _startPoint.Y); } } public void Canvas_MouseUp(object sender, MouseButtonEventArgs e) { _startPoint = new Point(0, 0); } // INotifyPropertyChanged implementation public event PropertyChangedEventHandler PropertyChanged; private void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } ``` 3. 在 View 中,将 DataContext 绑定到 ViewModel,并且在构造函数中初始化 DataContext。 ```csharp public MainWindow() { InitializeComponent(); DataContext = new RectangleViewModel(); } ``` 这样就完成了用鼠标调整矩形大小的功能。在鼠标移动时,ViewModel 中的 Width 和 Height 属性会被更新,并通过数据绑定更新 View 中的矩形大小。这个实现采用了 MVVM 架构,将 View 和 ViewModel 分离开来,从而实现了更好的代码组织和可测试性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值