WPF设计时
资料太少.中文没有.英文的也残缺不全.待补充.问题暂时解决.
设计器通过使用命名约定来发现自定义设计时程序集
运行时程序集与设计时程序集对应关系
| 加载顺序 | 程序集名称(*表示版本号,可省略) | |
| 0 | ControlLibrary.dll | 运行时程序集 |
| 1 | ControlLibrary.Design.*.dll | 设计时程序集(Visual Studio和Blend公用) |
| 2 | \Design\ControlLibrary.Design.*.dll | 设计时程序集(Visual Studio和Blend公用) |
| 3 | ControlLibrary.VisualStudio.Design.*.dll | 设计时程序集(Visual Studio专用) |
| 3 | ControlLibrary.Expression.Design.*.dll | 设计时程序集(Blend专用) |
| 4 | \Design\ControlLibrary.VisualStudio.Design.*.dll | 设计时程序集(Visual Studio专用) |
| 4 | \Design\ControlLibrary.Expression.Design.*.dll | 设计时程序集(Blend专用) |
使用IProvideAttributeTable接口
[assembly: ProvideMetadata(typeof(CustomControlLibrary.Design.Metadata))]
namespace CustomControlLibrary.Design
{
internal class Metadata : IProvideAttributeTable
{
public AttributeTable AttributeTable
{
get
{
AttributeTableBuilder builder = new AttributeTableBuilder(); builder.AddCustomAttributes(
typeof(Test),
new FeatureAttribute(typeof(TestDefaults))); return builder.CreateTable();
}
}
}
}
使用基类DefaultInitializer提供初始化默认值
namespace CustomControlLibrary.Design
{
public class TestDefaults : DefaultInitializer
{
public override void InitializeDefaults(ModelItem item)
{
item.Properties["Context"].SetValue(new TextBox());
}
}
}
可用基类包含:
DefaultInitializer(默认值初始化);
AdornerProvidres(为 WPF 控件提供容器,这些控件在设计时用作装饰器);
PrimarySelectionContextMenuProvider(为当前所选内容显示的一组 MenuGroup 项);
PrimarySelectionAdornerProvide(为主选项显示的一组装饰器)
...等
WPF设计时的更多相关文章
- wpf设置设计时的ViewModel
原文:wpf设置设计时的ViewModel wpf mvvm开发中,有些情况下,你的view不一定设置DataContext,但是你又想在设计阶段,能够自动提示你的view绑定的viewmodel的内 ...
- 必须要会的技能(一) 如何实现设计时Binding
今天我们来分享一个主题:DesignTime Binding设计时绑定. 这一项技术可以使用在所有包括WPF及其衍生出来的技术上,比如Sliverlight,当然也包括UWP 先来说明一下设计时Bin ...
- dt.jar设计时rt.jar运行时
很多人在初学Java的时候,都要配置环境变量.在配置CLASSPATH的时候,都会加上一个当前目录.,还有两个jar:dt.jar和tools.jar.其实好多人都不了解这两个jar的作用,尤其是dt ...
- 为什么要提倡"Design Pattern"呢? 开闭原则 系统设计时,注意对扩展开放,对修改闭合。
[亲身经历] 无规矩不成方圆 设计模式 - 搜狗百科 https://baike.sogou.com/v123729.htm?fromTitle=设计模式 为什么要提倡"Design Pat ...
- 解决COM组件在WPF设计器中命名空间不存在XXX的问题(附带如何在WPF中使用APlayer引擎)
总结起来就是:设计器的版本要跟外部引用的库版本一致,否则XAML设计器就会显示不出来. 例如你的程序是X64的,但是引用的COM组件是32位的,就会显示不出来.这里的建议是:编译一个32位的COM中间 ...
- 让VS2019支持.NET Core WinForms和WPF设计器的临时办法(比微软给出的办法更方便)
参考以下代码片段,给项目添加NET Framework目标框架,切换到NET472运行时重新生成项目,然后打开设计器界面. 如果遇到设计器报错,尝试以NET472运行时为目标重新生成项目,并重新打开V ...
- 让VS2019支持.NET Core WinForms和WPF设计器的临时办法(转)
.net core 3.0 Preview 6,vs2019 16.1.4 暂时还不支持Winform designer 解决方案: 将Form1修改为其他名字 WinForm 编辑项目文件 加 ...
- DIV CSS设计时IE6、IE7、FF 与兼容性有关的特性(转载的)
在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果! 所有浏览器 ...
- [转载]DIV CSS设计时IE6、IE7、FF 与兼容性有关的特性
在网站设计的时候,应该注意css样式兼容不同浏览器问题,特别是对完全使用DIV CSS设计的网,就应该更注意IE6 IE7 FF对CSS样式的兼容,不然,你的网乱可能出去不想出现的效果! 所有浏览器 ...
随机推荐
- docker下安装tensorflow
一,查找镜像 root@xushi:~# docker search tensorflow NAME DESCRIPTION STARS OFFICIAL AUTOMATED tensorflow/t ...
- js jquery 取得周月年时间
function formatDate(date) { var myyear = date.getFullYear(); var mymonth = date.getMonth() + 1; var ...
- SQL判断如果一列值为null则取另一列值代替 isnull()
[chClientCode] ,[nvcClientName] ,[chRegionCode] ,isnull(chUltimateHeadClientCode,[chClientCode]) as ...
- springMVC学习 四 请求的中文乱码解决
在使用SpringMVC时,同样有前端向后端发送请求,请求参数中有中文,需要解决中文乱码问题,在Spring中也是向java web中一样,通过一个过滤器来解决中文乱码. 这个过滤器在spring-w ...
- Mac 环境通用
mac 下更新 .bash_profile 文件 1.打开terminal(终端) 2.cd ~ ( 进入当前用户的home目录) 3.open .bash_profile (打开.bash_prof ...
- 54.NSJSONSerialization类进行json解析(字符串“UTF-8解码”)
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllo ...
- 算法工程师B
美团点评2017校招笔试真题-算法工程师B 1.以下关于经典的k-means聚类的说法哪个是错误的? A:k-means聚类算法是全局收敛的 B:k-means的聚类结果和初始聚类中心点的选取有关 ...
- 2018.11.02 NOIP模拟 飞越行星带(最小生成树/二分+并查集)
传送门 发现题目要求的就是从下到上的瓶颈路. 画个图出来发现跟去年noipnoipnoip提高组的奶酪差不多. 于是可以二分宽度+并查集检验,或者直接求瓶颈. 代码
- mac os下提高android studio运行速度终极方法
/Users/hangliao/ 删除(.android .gradle)两个文件夹 android studio恢复所有设置到初始化状态,这样会删除已创建的模拟器,所以需从创建一下模拟器 mac ...
- mysql知识积累
验证mysql工作状态 systemctl status mysql.service 启动 sudo systemctl start mysql 停止 service mysql stop 重启mys ...