在做组件之前,为了适应框架,我们需要有一个基类,并将这个基类打包成一个模板,让大部分组件去使用这个模板。

组件的基类就不多讲了,上篇文章中已经说过了。这是地址:

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组件开发的更多相关文章

  1. WPF组件开发之组件的基类

    之前在网上看到很多关于组件开发的资料,但真正可以用到框架内的却很少.今天贴出自己做的组件,并适合大部分框架的代码. 组件开发需要先做出组件的基类,然后由其他的各类组件去继承这个基类,下面是组件基类的代 ...

  2. vue前端开发那些事——vue组件开发

    vue的学习曲线不是很陡(相比其它框架,如anglarjs),官方文档比较全面,分为基础篇和高级篇.我们刚开始学习的时候,肯定像引用jquery那样,先把vue的js引进来,然后学习基础内容.如果仅仅 ...

  3. 《进击吧!Blazor!》第一章 5.组件开发

    <进击吧!Blazor!>是本人与张善友老师合作的Blazor零基础入门系列视频,此系列能让一个从未接触过Blazor的程序员掌握开发Blazor应用的能力. 视频地址:https://s ...

  4. .NET Core/.NET5/.NET6 开源项目汇总11:WPF组件库1

    系列目录     [已更新最新开发文章,点击查看详细] WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Frame ...

  5. .NET Core/.NET5/.NET6 开源项目汇总12:WPF组件库2

    系列目录     [已更新最新开发文章,点击查看详细] WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Frame ...

  6. React-Native 组件开发方法

    前言 React Native的开发思路是通过组合各种组件来组织整个App,在大部分情况下通过组合View.Image等几个基础的组件,可以非常方便的实现各种复杂的跨平台组件,不过在需要原生功能支持. ...

  7. 饿了么基于Vue2.0的通用组件开发之路(分享会记录)

    Element:一套通用组件库的开发之路 Element 是由饿了么UED设计.饿了么大前端开发的一套基于 Vue 2.0 的桌面端组件库.今天我们要分享的就是开发 Element 的一些心得. 官网 ...

  8. 基于vue的新组件开发

    前天完成了一个新组件的开发,做的过程也是各种遇到问题,彻底弄懂了slot,巩固了一些flex布局和jquery的知识,比起自己第一次做组件开发,现在已经是能够下手做,遇到问题解决问题,还算有进步. 但 ...

  9. winRT Com组件开发流程总结

    winRT Com组件开发: 1.编辑idl文件,winRT COM的idl文件与win32的idl文件有差异,如下: interface ItestWinRTClass; runtimeclass ...

随机推荐

  1. WinterCamp 2015 总结

    这次WC2015确实有很多遗憾,特别是考试的时候犯的低级错误,由于我没有看到第三题每个点输出不全可以得小分,对于又没跑出来的点,我都根本没有上交.这确实是一个很悲伤的事情,但是也给我了足够时间去反思. ...

  2. 【SPOJ 2319】 BIGSEQ - Sequence (数位DP+高精度)

    BIGSEQ - Sequence You are given the sequence of all K-digit binary numbers: 0, 1,..., 2K-1. You need ...

  3. Https协议:SSL建立过程分析(也比较清楚,而且有OpenSSL的代码)

    web访问的两种方式: http协议,我们一般情况下是通过它访问web,因为它不要求太多的安全机制,使用起来也简单,很多web站点也只支持这种方式下的访问. https协议(Hypertext Tra ...

  4. Android之最简单的ImageView加边框方法

    转自:http://www.th7.cn/Program/Android/201301/120345.shtml 通常情况下,如果我们要给ImageView加上边框,比如宽为3dp的灰色框,是自己定义 ...

  5. bzoj1016

    这道题主要利用了最小生成树的两个性质 最小生成树每种边权的数目固定不变 最小生成树每种边权带来的连通状况一定唯一 由于每种边权的只有不到10种,所以直接穷举然后乘法原理即可 ; type node=r ...

  6. (转载)C++中将构造函数或析构函数定义为private

    (转载)http://www.blogjava.net/fhtdy2004/archive/2009/05/30/278971.html C++中将构造函数或析构函数定义为private 很多情况下要 ...

  7. linux下建立无线wifi------简单实用!

    一 安装必要软件安装hostapd :    sudo apt-get install hostapd安装DHCP:    sudo apt-get install dhcp3-server 二 配置 ...

  8. Win7,8的上帝模式文件夹 GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}

    新建一文件夹,命名为:“GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}”, 创建后双击进入,可以看到计算机所有的配置选项信息.

  9. Unity3d 实现顶点动画

    在今年GDC上发现一个非常有趣的演讲,叫做Animating With Math,遂实现之,是讲述顶点shader动画的,举了几个经典的例子,但是讲者并没有给代码,而是像虚幻引擎那样的节点,这样更加清 ...

  10. [CODEVS1014]装箱问题

    题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数). 要求n个物品中,任取若 ...