WPF控件模版TreeView
-
整个Demo效果图。
-
前言
最近准备接触图像处理领域的东西,想想还是从opencv开始学习,看到模板匹配的时候忍不住想动手实现之间接触的一个项目,因某些原因图像的来源是从CSharp程序里实现的,所以得转到C++里面调用opencv处理,但是到选取模板区域有点麻烦了,wpf自带的image控件并不支持选区的编辑,而且还有坐标、RGB等重要信息输出,就动手Do It! -
感谢
首先这里参阅了好多大神的例子,包括这个主界面(论坛大神用纯C/C++实现基础的图像处理功能,简直是我等楷模!),站在别人的肩膀上果然不腰疼。。。 -
正题
框架介绍下,左边是TreeViee控件,反射的自己磁盘目录文件,如果是文件的话只区分两种,图片文件和非图片文件,本软件仅处理图像文件(bmp、jpg、png);右边为图像控件,能实现鼠标操作,缩放、拖动、实时显示位置和RGB、局部放大、选取编辑(仅以三种形状Demo)等功能。- TreeView控件
添加节点选中的属性,对外通知选中的文件路径(参阅)。
- TreeView控件
class MyTreeView : TreeView
{
public MyTreeView() : base()
{
this.SelectedItemChanged += new RoutedPropertyChangedEventHandler<object>(___ICH);
}
void ___ICH(object sender, RoutedPropertyChangedEventArgs<object> e)
{
if (SelectedItem != null)
{
//将SelectedItem通知到SelectedItem_Property也就是代理属性SelectedItem_,以便往外传播
SetValue(SelectedItem_Property, SelectedItem);
}
}
public object SelectedItem_
{
get {
return (object)GetValue(SelectedItem_Property); }
set {
SetValue(SelectedItem_Property, value); }
}
public static readonly DependencyProperty SelectedItem_Property = DependencyProperty.Register("SelectedItem_", typeof(object), typeof(MyTreeView