首页 > 编程知识 正文

wpf自定义控件(cesium自定义控件)

时间:2023-05-04 06:21:20 阅读:4958 作者:4068

这个“入门”部分解释了高级开发人员如何编写自己的ASP.NET服务器控件,在ASP.NET页面框架中工作。通过编写自己的自定义ASP.NET服务器控件,可以将自定义用户界面和其他功能封装在控件中,以便在ASP.NET页面上重用。入门通过实例介绍了如何创建自定义控件。有关控件创作的更多信息,请参见Microsoft中的“开发ASP.NET服务器控件”。NET框架软件开发工具包文档。

注意:尽管本节中描述的控件在运行时可以在ASP.NET页面上正常工作,但在窗体设计器(如Microsoft Visual Studio)中可能无法正常工作。NET)在设计时。为了在设计器中工作,控件需要应用这里没有解释的设计时属性。有关需要应用的设计时属性的更多信息,请参见SDK文档中的“组件的设计时属性”。

开发简单的自定义控件。

开始创作自己的ASP.NET服务器控件很容易。创建简单的自定义控件时,您所要做的就是定义从System派生的类。控件并重写其呈现方法。渲染方法采用系统类型的参数。控件发送给客户端的HTML作为字符串参数传递给HtmlTextWriter的Write方法。

定义简单属性

属性类似于带有访问器方法的“智能”字段。属性应该从控件而不是公共字段中公开,因为属性允许数据隐藏、版本控制,并且受到可视化设计器的支持。属性具有用于设置和检索属性的get/set访问器方法,并允许在需要时执行附加的程序逻辑。

下面的示例显示了如何添加与基本数据类型(如整数、布尔值和字符串)相对应的简单属性。这个例子定义了三个属性:——消息是字符串类型,消息大小是枚举类型,迭代是整数类型。注意设置简单属性和枚举属性的页面语法。

请注意,ASP.NET有一个设置子属性的特殊语法。下面的代码示例演示如何以声明方式设置格式。颜色和格式。简单子属性上的子属性大小。“-”语法表示一个子属性。

检索内部内容

每个控件都有从系统继承的控件属性。网络界面控件.这是集合属性,表示控件的子控件(如果有)。如果该控件未标记为Parsechildernattribute或标记为Parsechildernattribute(子项属性=false),则当该控件在页面上以声明方式使用时,ASP.NET页面框架将应用以下分析逻辑。如果分析器在控件的标记中遇到嵌套控件,它将创建嵌套控件的实例,并将它们添加到控件的Controls属性中。标签之间的文本被添加为literarchy。任何其他嵌套元素都会生成解析器错误。

下面的示例显示了自定义控件SimpleInnerContent。该控件通过检查literarchy是否已添加到其控件集合中来呈现在其标记之间添加的文本。如果添加,它将检索literarchy的Text属性,并将其附加到输出字符串中。

如果自定义控件是从WebControl派生的,那么它就不会有示例中描述的分析逻辑,因为WebControl用parcelidernattribute(childsproperties=true)标记,这导致了不同的分析逻辑。有关ParseChildrenAttribute的更多信息,请参考SDK文档。

开发复合控件

您可以通过将现有控件与类组合来组合新控件。复合控件相当于使用ASP.NET页面语法创作的用户控件。用户控件和复合控件之间的主要区别在于用户控件保持为。当复合控件被编译并保存在程序集中时。

开发复合控件的主要步骤是:

重写从控件继承的受保护的createchildControls方法,以创建子控件的实例并将它们添加到控件集合中。

如果将在页面上重复创建复合控件的新实例,请实现系统。Web.UI.INamingContainer接口。这是一个没有方法的标签接口。当使用控件实现时,ASP.NET页面框架将在该控件下创建一个新的命名范围。这确保子控件在控件层次结构树中具有唯一的标识。

因为子控件提供呈现逻辑,所以不需要重写呈现方法。您可以公开复合子控件属性的属性。

下面的例子定义了复合控件Composition1,它结合了System。web . ui . literarchy with system . web . ui web controls . textbox.composition 1公开了一个整型的自定义属性值,它被映射到TextBox的Text属性。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。