欢迎光临
我们一直在努力

WPF-ROI控件设计

WPF-ROI控件设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Title="ROI自定义控件示例"
Width="1200"
Height="650"
Background="#252525"
WindowState="Maximized"
mc:Ignorable="d"

ROIImage

public class ROIImage : INotifyPropertyChanged
{
private ImageSource? _imageSource;
public ImageSource ImageSource
{
get { return _imageSource; }
set
{
_imageSource = value;
RaisePropertyChanged();
}
}

private Rect _roi = Rect.Empty;
public Rect Roi
{
get { return _roi; }
set
{
_roi = value;
RaisePropertyChanged();
}
}

#region – MVVM –
public event PropertyChangedEventHandler PropertyChanged;

public virtual void RaisePropertyChanged([System.Runtime.CompilerServices.CallerMemberName] string propertyName = "")
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));

}
#endregion
}

MainViewModel

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;

namespace WPFROI
{
public class MainViewModel : INotifyPropertyChanged
{

public MainViewModel()
{
var files = Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.png", SearchOption.AllDirectories);
ImageSourceConverter imageSourceConverter = new ImageSourceConverter();
foreach (var file in files)
{
ROIImage rOIImage = new ROIImage();
rOIImage.ImageSource = imageSourceConverter.ConvertFromString(file) as ImageSource;
this.Collection.Add(rOIImage);
}
this.SelectROIImage = this.Collection?.FirstOrDefault();
}

private ObservableCollection<ROIImage> _collection = new ObservableCollection<ROIImage>();
public ObservableCollection<ROIImage> Collection
{
get { return _collection; }
set
{
_collection = value;
RaisePropertyChanged();
}
}

private ROIImage _selectROIImage;
public ROIImage SelectROIImage
{
get { return _selectROIImage; }
set
{
_selectROIImage = value;
RaisePropertyChanged();
}
}

#region – MVVM –
public event PropertyChangedEventHandler PropertyChanged;
public virtual void RaisePropertyChanged([System.Runtime.CompilerServices.CallerMemberName] string propertyName = "")
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));

}
#endregion

}
}


ROIControl

在这里插入图片描述
在这里插入图片描述

赞(0)
未经允许不得转载:171主机测评 » WPF-ROI控件设计
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址