WPF组件开发
在做组件之前,为了适应框架,我们需要有一个基类,并将这个基类打包成一个模板,让大部分组件去使用这个模板。
组件的基类就不多讲了,上篇文章中已经说过了。这是地址:
http://www.cnblogs.com/BeiJing-Net-DaiDai/articles/3248034.html
首先 将基类打包成一个模板 放在
C:\Users\Administrator\Documents\Visual Studio 2010\Templates\ProjectTemplates\Visual C# 文件夹下这是win7下的 xp的在我的文档目录下找。
然后启动vs2010 文件->新建->项目
选择Visual C# 找到Component 

打开这个 就看到
模板了。
ok! 开始编辑
哦,对了 记得改下名字
。
在创建解决方案的时候去改,不要创建好之后改,以免不必要的麻烦。
组件:
public class ComponentTextBox : Component
{
public ComponentTextBox()
{
Content = new ShapeComponentTextBox();
} public override string TextName
{
get { return "文本框"; }
}
}
组件的属性:
public class ComponentTextBoxProperty : ComponentProperty
{
private string _Content; [Category("内容设置")]
[Description("文字")]
public string Content
{
get { return _Content; }
set
{
if (_Content == value) return; _Content = value;
OnPropertyChanged("Content");
}
} }
组件的事件:
public class ComponentTextBoxEvent : ComponentEvent
{
private string _Click; [Category("基础事件")]
[Description("单击事件.")]
[EventInfo("Click")]
public string Click
{
get { return _Click; }
set
{
if (_Click == value) return;
_Click = value;
OnPropertyChanged("Click");
}
} public void OnClick(object sender, RoutedEventArgs e)
{
if (Click != null)
{
//事件处理
}
}
}
ShapeComponentTextBox:
public class ShapeComponentTextBox : HrvContent
{
public ComponentTextBoxProperty _Property;
public ComponentTextBoxEvent _Event; public ShapeComponentTextBox()
{ this.Content = new TextBox();
BindingOperations.SetBinding(this.Content as TextBox, TextBox.ContentProperty, new Binding("Content") { Source = this.Property, Mode = BindingMode.TwoWay });
} public override ComponentProperty Property
{
get
{
if (_Property == null)
{
_Property = new ComponentTextBoxProperty();
}
return _Property;
}
} public override ComponentEvent Event
{
get
{
if (_Event == null)
{
_Event = new ComponentTextBoxEvent();
}
return _Event;
}
}
}
如此,大功告成!
这样就创建了一个TextBox组件(因为我没有自己写)想自己写可以按照这种方式去写。
点击加入QQ群:
WPF、AE技术交流群:94234450
WPF组件开发的更多相关文章
- WPF组件开发之组件的基类
之前在网上看到很多关于组件开发的资料,但真正可以用到框架内的却很少.今天贴出自己做的组件,并适合大部分框架的代码. 组件开发需要先做出组件的基类,然后由其他的各类组件去继承这个基类,下面是组件基类的代 ...
- vue前端开发那些事——vue组件开发
vue的学习曲线不是很陡(相比其它框架,如anglarjs),官方文档比较全面,分为基础篇和高级篇.我们刚开始学习的时候,肯定像引用jquery那样,先把vue的js引进来,然后学习基础内容.如果仅仅 ...
- 《进击吧!Blazor!》第一章 5.组件开发
<进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门系列视频,此系列能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...
- .NET Core/.NET5/.NET6 开源项目汇总11:WPF组件库1
系列目录 [已更新最新开发文章,点击查看详细] WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Frame ...
- .NET Core/.NET5/.NET6 开源项目汇总12:WPF组件库2
系列目录 [已更新最新开发文章,点击查看详细] WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Frame ...
- React-Native 组件开发方法
前言 React Native的开发思路是通过组合各种组件来组织整个App,在大部分情况下通过组合View.Image等几个基础的组件,可以非常方便的实现各种复杂的跨平台组件,不过在需要原生功能支持. ...
- 饿了么基于Vue2.0的通用组件开发之路(分享会记录)
Element:一套通用组件库的开发之路 Element 是由饿了么UED设计.饿了么大前端开发的一套基于 Vue 2.0 的桌面端组件库.今天我们要分享的就是开发 Element 的一些心得. 官网 ...
- 基于vue的新组件开发
前天完成了一个新组件的开发,做的过程也是各种遇到问题,彻底弄懂了slot,巩固了一些flex布局和jquery的知识,比起自己第一次做组件开发,现在已经是能够下手做,遇到问题解决问题,还算有进步. 但 ...
- winRT Com组件开发流程总结
winRT Com组件开发: 1.编辑idl文件,winRT COM的idl文件与win32的idl文件有差异,如下: interface ItestWinRTClass; runtimeclass ...
随机推荐
- js 正则 非负整数
Javascript 正则表达式 非负整数 /** * 正则判断非负整数 */ function testnum(ob){ var reg=/^[0-9]+?$/; //如果正则需要判断非负整数并带2 ...
- eclipse安装CDT插件遇到的问题
转自eclipse安装CDT插件遇到的问题 已经安装了集成java版本的eclipse,eclipse-java-indigo-SR1-win32.zip,在添加CDT插件时,遇到了问题. cdt-m ...
- MinGW中的头文件路径级环境变量设置
整理自 MinGW中的头文件路径 C头文件目录%MINGW_PATH%/include下有头文件,里面有strcpy等c函数的声明. C++头文件目录%MINGW_PATH%/lib/gcc/mi ...
- Swift初体验之图案锁
这篇在应用上貌似没有价值,貌似我写了好多实际上都没有价值,这里贴出来就是分享下. 自己写swift好多天了,感觉好多东西还是不太懂,边学边做,互勉! 先上图: 代码:下载
- [wikioi]四色问题
http://wikioi.com/problem/1116/ 典型的DFS. #include <iostream> #include <memory.h> #define ...
- BOM的来源是不可能出现的字符,GB2312双字节高位都是1,Unicode理论的根本缺陷导致UTF8的诞生
Unicode字符编码规范 http://www.aoxiang.org 2006-4-2 10:48:02Unicode是一种字符编码规范 . 先从ASCII说起.ASCII是用来表示英文字符的 ...
- perl unload utf-8 oracle Wide character in print at unload_oracle.pl line 105.
#!/usr/bin/perl use DBI; use Encode; my $dbName = 'oadb'; my $dbUser = 'vxspace'; my $dbUserPass = ' ...
- ppi和dpi
以下内容都是我自己总结的,如有不妥之处,请留言讨论,批评指正.万分感谢!ppi:可以用下面公式求得 对于手机屏幕来说,屏幕尺寸是固定的,分辨率一般是不可以调节的.所以ppi是一个定值.此值越高显示越细 ...
- TC598 div2
题意:给一些物品item[],这些物品的重量在101至300之间,要将这些物品全部放进若干个bins中,已知bins盛的重量为300,可以将bins装满也可以不装满, 问放这些物品最少需要几个bins ...
- 最小生成树之Prim算法,Kruskal算法
Prim算法 1 .概览 普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树.意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点(英语:Vertex (gr ...