1.融合效果融合效果是指对两个接近的元素进行高斯模糊后再提高对比度,使它们看上去“粘”在一起。在之前的一篇文章中,我使用Win2D实现了融合效果,效果如下:不过Win2D不适用于WPF,在WPF中可以使用BlurEffect配合自定义Effect实现类似的效果。HandyControl中有一个使用自定义的ContrastEffect实现融合效果的Demo,如下图:但是ContrastEffect是通过Contrast属性同时控制RGBA四个通道的对比值,所以没办法控制准确地颜色。另外HandyControl也提供了ColorMatrixEffect,不过ColorMatrixEffect很难控
1.融合效果融合效果是指对两个接近的元素进行高斯模糊后再提高对比度,使它们看上去“粘”在一起。在之前的一篇文章中,我使用Win2D实现了融合效果,效果如下:不过Win2D不适用于WPF,在WPF中可以使用BlurEffect配合自定义Effect实现类似的效果。HandyControl中有一个使用自定义的ContrastEffect实现融合效果的Demo,如下图:但是ContrastEffect是通过Contrast属性同时控制RGBA四个通道的对比值,所以没办法控制准确地颜色。另外HandyControl也提供了ColorMatrixEffect,不过ColorMatrixEffect很难控
摘要在Prism中弹出一个对话框,默认是一个Windows默认样式的窗口,会与自己所开发的项目完全不搭配,例如下面这样子如果为了迎合软件主体风格,可以做出类似这样效果其实原理也很简单,Prism也考虑到了这一点,所以特意设计一个供用户自定义的接口编写组件样式1、新建一个Window视图注意Window里的一些必要属性记得设置一下,比如SizeToContentShowInTaskbar等等实现无边框还是使用常规WindowChrome做法其中CaptionHeight表示可以拖拽的高度,这里一般建议与自己所设计的高度一致,关于WindowChrome相关用法和介绍就不过多赘述,具体可前往MSD
摘要在Prism中弹出一个对话框,默认是一个Windows默认样式的窗口,会与自己所开发的项目完全不搭配,例如下面这样子如果为了迎合软件主体风格,可以做出类似这样效果其实原理也很简单,Prism也考虑到了这一点,所以特意设计一个供用户自定义的接口编写组件样式1、新建一个Window视图注意Window里的一些必要属性记得设置一下,比如SizeToContentShowInTaskbar等等实现无边框还是使用常规WindowChrome做法其中CaptionHeight表示可以拖拽的高度,这里一般建议与自己所设计的高度一致,关于WindowChrome相关用法和介绍就不过多赘述,具体可前往MSD
随着20229月份Uno发布了4.5版本,现有的WPF应用多了一个新的开发模式,那就是通过UnoIslands技术,在现有的WPF应用里面嵌入Uno应用。通过此方式可以辅助在现有的WPF项目里面,部分功能迁入Uno项目,或者是某些新开发功能通过Uno实现,从而利用Uno跨平台的能力,逐个功能点支持跨平台功能。逐个小功能接入的方式,让开发者不需要为一次性迁移一个庞大的项目而烦恼本文将尝试写一个非常简单的例子用来尝试在一个空的WPF项目上,接入UnoIslands技术,核心代码完全来自Uno官方,详细请看UnoIslands官方文档在开始之前,先介绍一下Uno项目是什么。这是一个支持用C#+XAM
随着20229月份Uno发布了4.5版本,现有的WPF应用多了一个新的开发模式,那就是通过UnoIslands技术,在现有的WPF应用里面嵌入Uno应用。通过此方式可以辅助在现有的WPF项目里面,部分功能迁入Uno项目,或者是某些新开发功能通过Uno实现,从而利用Uno跨平台的能力,逐个功能点支持跨平台功能。逐个小功能接入的方式,让开发者不需要为一次性迁移一个庞大的项目而烦恼本文将尝试写一个非常简单的例子用来尝试在一个空的WPF项目上,接入UnoIslands技术,核心代码完全来自Uno官方,详细请看UnoIslands官方文档在开始之前,先介绍一下Uno项目是什么。这是一个支持用C#+XAM
从设计上,用户控件UserControl就不是一个合适用来多次继承的类型,更不要说进行跨程序集继承自定义的UserControl用户控件。对于大部分的用户控件来说,都是采用组合现有的控件来实现的功能,本身应该被当成一个模块来进行使用。在WPF框架里面,从框架层阻止了开发者对自定义的UserControl用户控件跨程序集继承的逻辑,一旦尝试进行跨程序集继承,将在运行时抛出异常。本文将从源代码的角度告诉大家WPF框架是如何阻止跨程序集继承先来写一些演示使用的代码,新建一个WpfLibrary1项目用来存放自定义的用户控件。在WpfLibrary1项目里面新建一个UserControl1.xaml的
从设计上,用户控件UserControl就不是一个合适用来多次继承的类型,更不要说进行跨程序集继承自定义的UserControl用户控件。对于大部分的用户控件来说,都是采用组合现有的控件来实现的功能,本身应该被当成一个模块来进行使用。在WPF框架里面,从框架层阻止了开发者对自定义的UserControl用户控件跨程序集继承的逻辑,一旦尝试进行跨程序集继承,将在运行时抛出异常。本文将从源代码的角度告诉大家WPF框架是如何阻止跨程序集继承先来写一些演示使用的代码,新建一个WpfLibrary1项目用来存放自定义的用户控件。在WpfLibrary1项目里面新建一个UserControl1.xaml的
创建消息提示控件internalclassMessage:ContentControl{publicintTime{get;set;}[Bindable(true)]publicMessageTypeMessageType{get{return(MessageType)GetValue(MessageTypeProperty);}set{SetValue(MessageTypeProperty,value);}}publicstaticreadonlyDependencyPropertyMessageTypeProperty=DependencyProperty.Register("Messa
创建消息提示控件internalclassMessage:ContentControl{publicintTime{get;set;}[Bindable(true)]publicMessageTypeMessageType{get{return(MessageType)GetValue(MessageTypeProperty);}set{SetValue(MessageTypeProperty,value);}}publicstaticreadonlyDependencyPropertyMessageTypeProperty=DependencyProperty.Register("Messa