创建 WPF 工具箱控件
WPF (Windows Presentation Framework) 工具箱控件模板允许您创建 WPF 控件,会自动添加到 工具箱 安装扩展的安装。 本主题演示如何使用模板来创建 工具箱 可以分发给其他用户的控件。
创建 WPF 工具箱控件
与 WPF 工具箱控件中创建的扩展
创建一个名为的 VSIX 项目 MyToolboxControl。 您可以找到中的 VSIX 项目模板 新项目 下的对话框 Visual C# / 可扩展性。
在打开该项目,添加 WPF 工具箱控件 项模板名为 MyToolboxControl。 在 解决方案资源管理器, ,用鼠标右键单击项目节点并选择 添加 / 新项。 在 添加新项 对话框中,转到 Visual C# / 可扩展性 ,然后选择 WPF 工具箱控件。 在 名称 在窗口的底部字段中,命令文件名称更改为 MyToolboxControl.cs。
该解决方案现在包含一个用户控件, ProvideToolboxControlAttribute RegistrationAttribute ,将控件添加到工具箱, ,和一个 Microsoft.VisualStudio.ToolboxControl 资产部署的 VSIX 清单中的条目。
若要创建控件用户界面
在设计器中打开 MyToolboxControl.xaml。
此设计器显示包含 Button 控件的 Grid 控件。
排列网格布局。 当您选择 Grid 控制,网格的顶部和左侧边缘上显示蓝色的控件条。 您可以添加到网格的行和列,方法是单击标题栏。
将子控件添加到网格。 您可以通过将其从拖动定位子控件 工具箱 部分的网格中,或通过设置其 Grid.Row 和Grid.Column 在 XAML 中的属性。 下面的示例在网格中,然后第二行上的按钮的顶行上添加两个标签。
<Grid>
<Label Grid.Row="" Grid.Column="" Name="label1" />
<Label Grid.Row="" Grid.Column="" Name="label2" />
<Button Name="button1" Click="button1_Click" Grid.Row="" Grid.ColumnSpan="" />
</Grid>重命名控件
默认情况下,您的控件将出现在 工具箱 作为 MyToolboxControl 中一个名为组MyToolboxControl.MyToolboxControl。 您可以更改这些名称 MyToolboxControl.xaml.cs 文件中。
在代码视图中打开 MyToolboxControl.xaml.cs。
查找 MyToolboxControl 类并将它重命名为 TestControl。 (若要这样做的最快方法是重命名类中,然后选择 重命名从上下文菜单并完成的步骤。 (有关详细信息 重命名 命令,请参阅 重命名重构 (C#)。)
转到 ProvideToolboxControl 属性并更改的第一个参数的值 测试。 这是将包含控件中的组的名称 工具箱。
生成的代码应如下所示︰
[ProvideToolboxControl("Test", true)]
public partial class TestControl : UserControl
{
public TestControl()
{
InitializeComponent();
}
}
当调试项目时,您应会看到在安装该控件 工具箱 的 Visual Studio 的实验实例。
生成并测试控件
重新生成项目并启动调试。
在 Visual Studio 的新实例中,创建 WPF 应用程序项目。 请确保 XAML 设计器处于打开状态。
在“工具箱”中查找控件,并将其拖动到设计图面上。
开始调试 WPF 应用程序。
确认出现了您的控件。
部署控件
生成测试的项目后,可以在项目的 \bin\debug\ 文件夹中找到的.vsix 文件。
您可以安装它在本地计算机上双击.vsix 文件并按照安装过程。 若要卸载该控件,请转到 工具 / 扩展和更新 并寻找控件扩展,然后单击 卸载。
将 .vsix 文件上载到网络或网站。
如果您将文件上载到 Visual Studio 库 网站,其他用户可以使用 工具 / 扩展和更新 在 Visual Studio 中查找联机的控件并将其安装。
WPF (Windows Presentation Framework) 工具箱控件模板允许您创建 WPF 控件,会自动添加到 工具箱 安装扩展的安装。 本主题演示如何使用模板来创建 工具箱 可以分发给其他用户的控件。
启动 Visual Studio 2015 中,您并不安装 Visual Studio SDK 从下载中心获得。 它将包括作为 Visual Studio 安装程序中的可选功能。 您还可以在以后安装 VS SDK。 有关更多信息,请参见 安装 Visual Studio SDK。
与 WPF 工具箱控件中创建的扩展
创建一个名为的 VSIX 项目 MyToolboxControl。 您可以找到中的 VSIX 项目模板 新项目 下的对话框 Visual C# / 可扩展性。
在打开该项目,添加 WPF 工具箱控件 项模板名为 MyToolboxControl。 在 解决方案资源管理器, ,用鼠标右键单击项目节点并选择 添加 / 新项。 在 添加新项 对话框中,转到 Visual C# / 可扩展性 ,然后选择 WPF 工具箱控件。 在 名称 在窗口的底部字段中,命令文件名称更改为 MyToolboxControl.cs。
该解决方案现在包含一个用户控件, ProvideToolboxControlAttribute RegistrationAttribute ,将控件添加到工具箱, ,和一个 Microsoft.VisualStudio.ToolboxControl 资产部署的 VSIX 清单中的条目。
若要创建控件用户界面
在设计器中打开 MyToolboxControl.xaml。
此设计器显示包含 Button 控件的 Grid 控件。
排列网格布局。 当您选择 Grid 控制,网格的顶部和左侧边缘上显示蓝色的控件条。 您可以添加到网格的行和列,方法是单击标题栏。
将子控件添加到网格。 您可以通过将其从拖动定位子控件 工具箱 部分的网格中,或通过设置其 Grid.Row 和Grid.Column 在 XAML 中的属性。 下面的示例在网格中,然后第二行上的按钮的顶行上添加两个标签。
<Grid>
<Label Grid.Row="0" Grid.Column="0" Name="label1" />
<Label Grid.Row="0" Grid.Column="1" Name="label2" />
<Button Name="button1" Click="button1_Click" Grid.Row="1" Grid.ColumnSpan="2" />
</Grid>
创建 WPF 工具箱控件的更多相关文章
- 创建WPF用户控件
wpf用户自定义控件和winform创建方法类似,这里先纠正一个误区,就是有很多人也是添加,然后新建,然后是新建用户控件库,但是为什么编译好生成后Debug目录下还是只有exe文件而没有dll文件呢? ...
- WPF 中动态创建和删除控件
原文:WPF 中动态创建和删除控件 动态创建控件 1.容器控件.RegisterName("Name",要注册的控件) //注册控件 2.容器控件.FindName(" ...
- 【WPF学习】第六十五章 创建无外观控件
用户控件的目标是提供增补控件模板的设计表面,提供一种定义控件的快速方法,代价是失去了将来的灵活性.如果喜欢用户控件的功能,但需要修改使其可视化外观,使用这种方法就有问题了.例如,设想希望使用相同的颜色 ...
- WPF布局控件常用属性介绍
WPF布局控件常用属性介绍 其它 | 作者:慧都控件网 | 2011-04-06 13:41:57| 阅读 0次 有用(0) 评论(0) 概述:WPF布局控件都是派生自System.Windows ...
- WPF第三方控件盘点
WPF统一的编程模型.语言和框架,实现了界面设计人员和开发人员工作可以分离的境界,鉴于WPF强大的优势,且一直是开发者关注的地方,下面和大家分享基于WPF项目开发需要用到的第三方控件,包括业界最受好评 ...
- C# WPF 歌词控件(支持逐字定位描色效果)
原文:C# WPF 歌词控件(支持逐字定位描色效果) 之前做了一个模仿网易云歌词的控件,实现了加载网易云歌词并能随音乐播放进度定位歌词.今天呢将在这个控件的基础上增加逐字定位描色功能,如下图效果(QQ ...
- WPF滑块控件(Slider)的自定义样式
前言 每次开发滑块控件的样式都要花很久去读样式代码,感觉有点记不牢,所以特此备忘. 自定义滑块样式 首先创建项目,添加Slider控件. 然后获取Slider的Window样式,如下图操作. 然后弹出 ...
- WPF默认控件模板的获取和资源词典的使用
一.获取默认的控件模板 WPF修改控件模板是修改外观最方便的方式,但是会出现不知道原来的控件的模板长什么样,或者想用来参考的,下面分享一下获取某控件默认控件模板的方式(已Button为例): 1.创建 ...
- WPF开源控件扩展库 - MaterialDesignExtensions
Material Design Extensions 在WPF开源控件库 Material Design in XAML Toolkit(本站介绍:链接)的基础上进行了控件扩展和特性新增.本开源项目中 ...
随机推荐
- C#反射在ADO中的巧用
在C#原生开发网站的时候,经常会碰到一个问题,后台用原生查出来的数据一般是DataReader或者是DataTable,这样就把数据从数据库中拿到了,然后就是把数据绑定到前台页面进行输出,这是最原生态 ...
- 【原创】相对完美的垂直居中popup(modal/dialog),无需监听window.resize事件
<table class="popup" style="position: absolute; background-color: black; border-ra ...
- no result defined for action
1.no result defined for action .......and result input 或者 no result defined for action .......and ...
- [转]Extjs combo数据绑定与获取
原文地址:http://www.cnblogs.com/loveme123/archive/2012/05/10/2494466.html 1. 配置combo: { ...
- Android进程整理
一.概括 系统启动架构图: 上图在Android系统-开篇中有讲解,是从Android系统启动的角度来分析,本文是从进程/线程的视角来分析该问题. 1.1 父进程 在所有进程中,以父进程的姿态存在的进 ...
- hihoCoder 后缀数组 重复旋律
#1403 : 后缀数组一·重复旋律 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为长度为 N 的数构成 ...
- java中Integer,String判断相等与integer的比较大小
package sfk.bbs.test.springjsbctempletTest; import static org.junit.Assert.*; import org.junit.Test; ...
- oracle---jdbc--laobai
import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...
- ruby
:for 是关键字, each是方法. for 后面的变量,是全局变量,不仅仅存在于for .. end 这个作用域之内 module中的 self.xx方法可以被直接调用 module中的普通方法, ...
- windows系统在python3.5环境下安装mysql组件
折腾了一个多小时,终于把连接Mysql的模块装好了,由于我的环境是python3.5,Mysql官方支持到python3.4,后面google查到有pymysql模快支持python3.5,这个模块是 ...