首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWPChrome)

更新于 2018-09-05 05:46 WPF 自定义窗口样式有多种方式,不过基本核心实现都是在修改 Win32 窗口样式。...本文将使用 WindowChrome 来自定义窗口样式,使其既保留原生窗口样式和交互习惯,又能够具备一定的自定义空间。...WPF 自定义窗口可是非常容易的,完全自定义样式、异形都不在话下。...我测量了一下 Microsoft Store 应用的按钮高度,是 32。 ? 但是,这 32 包括了顶部 1 像素的边框吗?我使用放大镜查看,发现是包含的。 ?...▲ 一个试验品 为了保证标题栏的标题文字也尽可能地接近原生窗口,我也通过测量得出了用于显示标题的 的各种参数。整理之后,写成了下面的样式: ?

6.7K20

Binding(三):资源和ValueConverter

资源 在XAML中,我们想要使用外部的数据或者类,需要引入其命名空间,然后将其定义为XAML页面的资源,供给控件使用,或者我们需要封装一个共用的样式,同样也需要定义成资源来使用,下面我们看一下如何定义一个资源...就是一个普通的字符串,定义一个样式资源,它的value就是一个定义样式的setter对象。...我们在使用Binding绑定数据的时候,当遇到源属性和目标控件需要的类型不一致的,就可以使用ValueConverter,它就相当于一个桥,当数据从源到目标控件时,需要走Convert方法,我们在这个方法里边就可以自定义转换逻辑...,当数据从目标控件到源时,需要走ConvertBack方法,我们可以在这里边自定义回转逻辑。...,第一个就是数据,我们要转换的值就是它,第二个参数是目标类型,当从bool转换为Visibility时,这个参数就是Visibility,反之则是bool,第三个参数是转换参数,可以在标记扩展中定义,第四个是文化参数

42920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWPChrome)

    WPF 自定义窗口样式有多种方式,不过基本核心实现都是在修改 Win32 窗口样式。...本文将使用 WindowChrome 来自定义窗口样式,使其既保留原生窗口样式和交互习惯,又能够具备一定的自定义空间。...WPF 自定义窗口可是非常容易的,完全自定义样式、异形都不在话下。...我测量了一下 Microsoft Store 应用的按钮高度,是 32。 但是,这 32 包括了顶部 1 像素的边框吗?我使用放大镜查看,发现是包含的。...▲ 一个试验品 为了保证标题栏的标题文字也尽可能地接近原生窗口,我也通过测量得出了用于显示标题的 的各种参数。

    2.2K60

    76.qt qml-QianWindow开源炫酷界面框架(支持白色暗黑渐变自定义控件均以适配)

    1.界面介绍 界面支持: 透明 白色 黑色 渐变 单色 静态图 动态图 侧边栏支持:抽屉、带折叠、多模式场景 控件已集成: 暗黑风格 高亮风格、并附带个人自定义控件及开源demo 白色场景如下所示:...spm_id_from=333.999.0.0 请大家不要说什么抄袭了,比如下面这种(本来就是写来给大家学习的): 我是参考国外截图界面,如下所示: 2.源码介绍 样式使用自带的谷歌样式 没有抄袭任何人的...,链接如下所示: https://blog.csdn.net/qq_37997682/article/details/122028358 侧边栏的伸展功能和抽屉功能详解链接如下所示: https://blog.csdn.net...3.为什么开源 最开始本人只是做专栏分享,本人也很难,每次想到什么demo都是先给大家写,然后再花时间自己用、 本来就是做为参考和悄悄使用,结果就有人偏偏践踏我的劳动成果,隐忍了半年之久,然后我t了还说我吃相难看...相信还有很多像我这样的人,默默的为支持的人写教程 写demo、已经严重影响到我每次写好demo就会想到又要被某某某无情践踏、  这只是部分截图:

    1.9K40

    WPF自定义控件创建

    WPF自定义控件创建 本文简单的介绍一下WPF自定义控件的开发。 首先,我们打开VisualStudio创建一个WPF自定义控件库,如下图: ? 然后,我们可以看到创建的解决方案如下: ?...在解决方案中,我们看到了一个Themes文件夹和一个CS文件。 其中CS文件,就是我们需要编写的自定义控件,里面的类继承了Control类;而Themes则存放该控件的样式。...即,WPF自定义控件,是通过样式给我们的编辑的控件类披上外衣而形成的。 下面,我们来编写一个简单的时间控件。...这样,我们就可以在KibaDateTime控件的样式中,用使用TextBox的属性,进行绑定了。 然后,我们在控件类里定义三个依赖属性,小时、分钟、秒;之后,我们会把这个三个属性,绑定到样式中。...自定义控件到此为止,就已经定义好了。然后我们使用下刚刚定义好的控件。 WPF自定义控件应用 首先创建一个WPF项目,然后引用KibaCustomControl这个程序集。如下图: ?

    2K20

    开发Silverlight 2.0的自定义控件

    文章中我会创建一个控件库和实现自定义控件按钮类,没有任何新增功能只是继承缺省Button类,但是带一个不同原来的button的缺省样式。...StoryBoards式的视觉状态转换,视觉元素和StoryBoards的名称非常重要,因为他们是Silverlight的样式可以工作的不可或缺的一部分,这里我们不讨论,将在另外的文章中讨论。...当前控件设计有一个固定的宽度和高度,因此我们可以通过用Setter来指定。 我们也指定控件的最小和最大尺寸以保护我们设计的按钮。...将我们控件加入测试项目 在测试项目TestApplication中测试我们的自定义控件,我们需要添加控件工程的引用。 ?...下一步做什么 我计划写一篇文章,我将在这篇文章知识的基础之上建立一个可更换皮肤的控件。

    73390

    SNS项目笔记--Slides显示大图

    slide为ionic专门处理图片轮播的一个控件,在左右轮滑中,有很多控制,导致一些细节上的要求便不可实现,现总结了一下github上相关的issuse来完成对应的需求实现。...slides依赖.png 这里不难看出在slides里面通过依赖于swiper来实现横滑纵滑轮播的。这里贴上swiper的官方链接:【如果你想了解swipe尝试动手自定义,请点击这里】。...addClass方法本身.png 也就是说,在整个滑动过程中,变化的样式是通过s:Slides本身来实现的,于是我们可以通过查找slides本身的样式来完成复用,最终达到我们理想的效果: ?...Slides样式.png 这里我们可以看到,我们的img样式被固定为此样式,我们可以在使用slides的页面样式中复用此样式,就可以让我们的img拥有更多我们自定义的功能,从而达到我们预期的效果: ?...我的项目代码复用.png ? 样式达到的效果.gif 2、点击放大 同样,研究源码中,我们可以看到有个zoom选项,其中与zoom相关的属性有以下这么几个: ?

    95720

    【全网最全的博客美化系列教程】02.添加QQ交谈链接

    添加QQ交谈链接 大家把目光移至最右边的公告栏哈,你们是不是看到了一个有事您Q我的图标呢?就像下面这样子 ?...很明显,我们可以看到上图,我用红色矩形框住的这部分语句控制着这个图标,点击以后会跳转到我的QQ临时对话的界面。然后跳转至如下的界面。 ?...原理:学过一点前端知识的人就知道,这是一个很简单的东西,通过href引用链接跳转,再用img标签装上一个图片的样式。 可能你们会问了,这个href链接为什么是这个呢?...其实在我探索过程中,我发现了QQ其实提供了一个临时会话的功能 ? 通过传入参数即可完成临时会话。 那我们怎么会知道有临时会话这个功能呢?...可能你们又会问了,我通过查看源码跳转,惊奇的发现,其实QQ平台自己提供了一个推广功能,并且有很多样式可以供我们选择。 ? QQ推广还提供了QQ群的推广源码,样式效果如下: ?

    52730

    Qt编写自定义控件19-图片背景时钟

    ,其实画法完全一模一样,我能说连代码我都是直接复制粘贴过来改改的吗?...远超qwt集成的控件数量。 每个类都可以独立成一个单独的控件,零耦合,每个控件一个头文件和一个实现文件,不依赖其他文件,方便单个控件以源码形式集成到项目中,较少代码量。...每个控件都有一个对应的单独的包含该控件源码的DEMO,方便参考使用。同时还提供一个所有控件使用的集成的DEMO。 每个控件的源代码都有详细中文注释,都按照统一设计规范编写,方便学习自定义控件的编写。...集成自定义控件属性设计器,支持拖曳设计,所见即所得,支持导入导出xml格式。 自带activex控件demo,所有控件可以直接运行在ie浏览器中。...集成fontawesome图形字体+阿里巴巴iconfont收藏的几百个图形字体,享受图形字体带来的乐趣。 所有控件最后生成一个dll动态库文件,可以直接集成到qtcreator中拖曳设计使用。

    1.1K00

    Android Material UI控件之ShapeableImageView

    Android Material UI控件之ShapeableImageView 前言 你有使用过Material中的UI控件吗?为什么要使用它们,相对于原来的控件优势在哪里?   ...你可能会使用第三方库,Glide或者CircleImageView等一些开源库,或者你会自定义ImageView来实现,那么如果我告诉你Material 中的ImageView可以不需要自定义和使用第三方库就能够实现圆形图片或其他一些形状的图片呢...可以看到,圆角已经出来了,是不是很奈斯呢?嗯?当然还有不同的用法。刚才我设置样式中的cornerSize的属性值为24dp。cornerFamily的属性值为rounded。表示有弧度。...我相信你已经会玩了。 ⑧ 头像图片 头像常规的就是一个圆形的,然后外边有一个边框。圆形的样式之前已经写了,那么只需要边框就可以了。边框就更简单了。...样式解读 你以为这就完了吗?当然木有,我相信从上述的使用过程中,你已经知道怎么设置相应的样式来显示效果了,但是还是得说明一下,各个样式代表的意思,那么去哪里看呢?当然是源码啦。

    2.4K41

    win32程序之子窗口编程

    MSG msg; /* 1参数是消息结构体.操作系统会往里面填写消息. 2 参数窗口句柄 因为每个线程可以有多个窗口.表示我要取那个窗口的消息 3.4 参数表示我要取这个窗口的那个消息...现在我们已经创建完毕子窗口了.那么我们想的是我要响应按钮消息什么的. Windows虽然为每个子控件提供了消息处理函数. 也就是回调. 但是Windows为了让我们处理消息. 所以子窗口有一个特性....因为当我们点击才会出现这个消息.那么我们可以看下这个消息是什么消息. 我们可以随便点击一个消息.查看定义.即可看到Windows全部的消息了.  windows消息都放在了WinUser.h中 ?...那么参数三是控件ID.  还记得上面我们说的吗. 要给每个控件分配一个控件ID. 就是在这里使用的. ? 具体看参数就如上图所示. 告诉你了.低位才是 ID. 也就是 menu item标记....MSG msg; /* 1参数是消息结构体.操作系统会往里面填写消息. 2 参数窗口句柄 因为每个线程可以有多个窗口.表示我要取那个窗口的消息 3.4 参数表示我要取这个窗口的那个消息.

    1.9K21

    Vue项目中使用Tinymce

    wangEditor:比较轻量级,最最最重要的是有中文文档上手快,UI也比较漂亮,而且还是国产的, 对于编辑器功能需求少的兄die可以考虑,但是考虑到我这项目业务比较重,所以只好放弃 Bootstrap-wysiwyg...succuss(服务图片地址); 本来以为上传图片就完成了, 图片上传就算完事了, 结果产品小伙伴说啦: “你这图片不可以直接复制粘贴吗?每次点上传好伐呀!!”, 那继续加复制粘贴功能呗!...但是我却花费了一个小时来搞这个, 因为我咋也粘贴不上, 所以不得不提一下这个坑:就因为我用的chrome开发, chrome浏览器直接在文件中复制粘贴图片是无法粘贴上的, 但是可以从微信输入框等地方粘贴上...对于135编辑器 135编辑器支持拷贝的是html代码,通过直接粘贴在code中即可保持排版样式不变,对于图片地址处理思路如下: 为自己的服务器设置一个白名单, 将页面中非白名单内的图片链接地址传给后台...,让后台去把这些图片放到自己服务器并返回给我新图片链接 然后我再更新对应的图片链接; 这里面主要涉及到: 找到所有图片链接 更新对应的图片链接 本来是打算使用正则来找到图片, 获得服务器返回的内容,再使用正则匹配替换

    4.8K20

    【愚公系列】2022年04月 Python教学课程 76-DRF框架之分页

    这允许您修改将大型结果集拆分为各个数据页的方式。 分页 API 可以支持以下任一功能: 作为响应内容的一部分提供的分页链接。 响应标头中包含的分页链接。...PAGE_SIZEPAGE_SIZE page_query_param- 一个字符串值,指示要用于分页控件的查询参数的名称。...默认为page_query_param(‘last’,) template- 在可浏览 API 中呈现分页控件时要使用的模板的名称。可以重写以修改呈现样式,或设置为完全禁用 HTML 分页控件。...可以重写以修改呈现样式,或设置为完全禁用 HTML 分页控件。缺省值为 。...可以重写以修改呈现样式,或设置为完全禁用 HTML 分页控件。缺省值为 。

    1K20

    初学Qt不会样式表怎么办,打包好的Qt样式表一键生成送给你。

    不会,百度半天,好不容易给控件添加了背景色,下一个控件又不会了,别急,这次福利来了,我将平时用到的样式表做了一个总结,并做了一个一键生成,调节数据就可以实时显示,里面包括了Label,LineEdit,...对于有一点基础的,随着学习的深入,不用我说,也应该感觉到第一种的局限性,也就是我说是的缺点,这个时候就应该使用第二种方法,来弥补第一种方法带来的缺陷,这个时候控件还不是很多,代码写样式表还容易找。...QPushBuuton { background-color: rgb(0, 255, 255); }        当有多个相同控件,例如按钮需要使用一种样式表的时候,就可以使用类型选择器,我们只需要将按钮放在同一个容器中...在按钮控件旁边的说明中,有一个警告,翻译过来就是: 警告:如果仅在QPushButton上设置背景色,除非将border属性设置为某个值,否则背景可能不会出现。...Qt控件样式表自定义官方文档,列出了可以使用样式表自定义的Qt小部件。 FdpgQtStyleSheet源码,别忘了给个star再走! FdpgQtStyleSheet软件

    5K73

    关于 CheckBox 你或许不知道的一些知识点

    android:attr/listChoiceIndicatorMultiple” 的使用drawableRight这里直接是引用了系统自带的图片.当然大家可以自定义自己样式,方法如下: 在drawable...checked="true" android:layout_centerInParent="true" android:layout_marginBottom="32dp" /> 可以看到我并没有对样式有任何的设置...而且其他的控件也是同理的,比如更改EditText的默认 hint 色值等.只要在theme中找到控件对应的style进行一下配置,全局就可以有统一的效果....我们经常有如下的需求: 一般我们都是利用线性布局或者相对布局包裹 TextView 和 ImageView 来完成,其实用一个 CheckBox (上面提到的文字在左的形式)就可以替代上面三个控件所达到的效果...解决这个问题的办法,可以随便设置一个背景色或者引用系统的水波纹或者自定义的背景效果.这里引用系统的效果. android:background="?

    72650

    使用通用附加属性来减少 WPF 元素自定义样式的多余代码

    可以再建一个基础样式,我这里直接把 PrimaryBox 当作基础样式,其余四个继承它即可。...在继续之前,先来看看我之前为了让一个样式用于多个场景 —— 也就是让控件模板中的相关属性能在元素上进行设置 —— 是怎么做的吧。...其实针对这种需求,有另一个做法:创建一个用户控件来继承这个元素,样式设置及最终使用都改为这个用户控件,然后需要新增设置的属性就在用户控件后台创建依赖属性。...4、可被借用的属性数量有限,有可能满足不了需要个性化设置的地方数量。 5、等等...... 后来某一天,我突然灵光乍现,想到可以创建一个通用的附加属性代理类(或者说是辅助类),来满足这种场景。...这里有一个设置圆角的例子: 这里样式中绑定了 WpfXamlPropProxy.CornerRadius,默认值为 5,在元素或者子样式中就可以对其更换为其它的值: 四、使用附加属性让控件模板可共用

    2K20

    值得收藏轻量级UI控件库

    主要包含有装饰器类、自定义特性、控件类、自定义控件、转换器、核心类、事件类、资源样式,主题样式、控件参数。 一、装饰器类给控件添加遮罩层。...二、自定义特性 三、控件扩展类以Nb开头,扩展类有丰富的注释,方便用户快速了解代码实现。 四、自定义控件定义了某些控件样式 五、转换器集成各种转换类。...七、事件类主要是自定义事件 八、控件样式是把控件样式封装在资源文件中,开发者需要重构样式时,在样式中修改即可。控件样式以Nb开头。...九、主题样式是扩展控件有更多的风格,用户添加不同风格控件,可以在指定的资源文件中增加所需控件风格。 十、系统参数是控件库中使用颜色,字体,控件大小需要的属性。...还有更多控件就没有做详细介绍,在使用Newbeecoder.UI控件库有需要技术技术可以私信我。

    1.2K20

    那些你从不使用的 HTML 属性,背后竟然大有文章,赶快了来了解下

    您可以看到这些“提示”如何对用户有用。用户是否正在执行一系列操作?他们在提交信息吗?他们在保存设置吗?根据他们正在做什么,您可以自定义提示以匹配您的应用程序的需求。...样式表上的title属性 在为本文进行研究时,这对我来说是全新的,可能是此列表中最有趣的一个。作为一些背景知识,如果您不知道,Firefox 有一个选项可让您选择查看页面时要使用的样式表。...该download属性是几年前添加到规范中的,它允许您指定单击链接时应该下载而不是访问该链接。...submit您可以使用此属性和表单的 id将表单控件(包括按钮)与文档中的任何表单相关联。 您可以使用此演示页面进行尝试。表单使用 GET 请求提交,因此您可以在 URL 的查询字符串中看到提交的值。...在我的例子中,我使用了一些文本的例子,描述了一个在 Firefox 中需要供应商前缀的 CSS 属性。这可能是一篇旧博客文章。

    1.5K30

    QTreeWidget详解「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。   树形结构在GUI中很常见,在Qt中,我们可以通过QTreeWidget类构造树形结构。...  QTreeWidget中还可以通过以下这个函数添加其它控件: void QTreeWidget::setItemWidget(QTreeWidgetItem *item, int column,...QWidget *widget) QTreeWidget信号   QTreeWidget的信号有(截图来自Qt帮助文档):   拿一个比较常见的信号来举例说明,鼠标双击TreeWidgetItem...,回顾一下之前信号与槽讲过的知识点,槽函数可以忽略信号中多余的参数,但不允许比信号的参数多,并且槽函数存在的参数的顺序必须和信号的前面几个一致起来,那么槽函数我可以写为: void myMainWindow...,我在这里做了一个对item的text和它父item的text进行打印的操作。

    3K50
    领券