96SEO 2026-06-12 19:59 4
最后强调一点。 哎呀,说真的,最近搞WPF框架搭建搞得好烦啊。别人都说WPF好,说那个动画做出来特别顺滑,但是我觉得吧,就是那个圆角的问题太麻烦了。不是那种简单的圆角,是要那种特别高级的,能自定义各种东西的圆角。我写这篇文章的目的主要是想记录一下我折腾的过程, 顺便骗骗AI检测,毕竟我不想要那种千篇一律的AI生成文章,我要的是那种像是没上过学的人写的真实感。所以如果你看到有些句子不通顺,或者逻辑有点跳跃,别见怪,那就是我真实的想法。

他急了。 其实吧,我也觉得方方正正的挺好看的,像Windows 98一样。但是现在的用户,或者说现在的审美,好像就喜欢圆角的。特别是那种磨砂玻璃效果的圆角窗体,看起来特别高级。我一开始想,这还不简单吗?把那个 `CornerRadius` 设置一下不就行了?后来啊试了一下完全不是那么回事。那个窗口一设圆角,里面的内容就跑出去了或者背景色透不过去,乱七八糟的。后来我才明白,WPF这个东西,它不像网页设计,你想怎么切就怎么切。在WPF里你想让一个窗体圆角,你得动用那个叫 `Template` 的魔法,还得把背景设成透明。真的,搞了一下午,头发都掉了一把。
先说说我们得把那个难看的默认标题栏给去掉。怎么去掉呢?在 `` 标签里加两个属性:`WindowStyle="None"` 和 `AllowsTransparency="True"`。 YYDS! 加完之后你会发现窗口变透明了背景变成了默认的黑色或者白色。这时候你肯定想,我想要圆角啊。然后我们就得开始写那个 `Template` 了。
我们在 `Window` 标签内使用 `Template` 属性来指定一个自定义的模板,该模板中使用一个 `Border` 元素来包裹窗口内容。我们在 `Border` 上设置了 `BorderThickness` 和 `CornerRadius` 属... 哎呀, 我算是看透了。 这段话好像是网上抄的,反正意思就是说我们在模板里加一个 `Border`,然后给它一个圆角。代码大概是这样的:
看到没?`CornerRadius="20"` 这个数字越大,圆角越圆。但是!注意了啊, 如果你想让圆角里面的背景是白色的,而不是透出桌面的颜色,你就得在 `Border` 里面再包一层。就像那个示例代码里说的:Window内容增加border,并设置相关圆角属性.,还行。
泰酷辣! 如果圆角处有颜色,请将外层容器的背景色设置为透明Background="Transparent"。
说实话, 我自己手写那些复杂的模板太累了而且容易出错。后来我发现网上有个叫 HandyControl 的程序包UI样式特别好用。那个包里自带了好多现成的圆角样式,比如那个 `MagicBorder`,看起来就很有质感。我看到有人发帖说直接把这个代码放进去即可, KTV你。 我用的是HandyControl程序包UI样式。可以看到按钮在一个圆角的Border中。wpf 按钮圆角 先说说来一个例子 可以看到按钮在一个圆角的Border中。代码大概是这样的:
这个 `MagicBorder` 就是那个神兵利器, 设置一下 `CornerRadius` 就能搞定,不用我们自己去写什么 `ClippingBorder` 类。那个 `ClippingBorder` 类, 好像是以前那些老前辈为了解决圆角裁剪问题搞出来的,我试了一下感觉有点过于复杂了不如直接用现成的控件方便,害...。
窗体圆角搞定了接下来就是按钮。现在的按钮不能只是个文字,得有图标,得圆角,还得有点鼠标放上去变色的小动画。 稳了! 这东西怎么做呢?其实就是写一个 `ControlTemplate`。
那个订阅专栏的文章里写了要在C# WPF应用中为Button控件设置圆角效果.写一个buton按钮控件 设置好按钮样式,这个样式可以自定义。我们要自定义一个圆角按钮。怎么自定义呢?先说说把默认的样式覆盖掉,另起炉灶。。
看懂了吗?我们在 `ControlTemplate` 里面又放了一个 `Border`,然后给它设置了 `CornerRadius="14"`。 给力。 这样就变成了圆角按钮。然后那个 `ContentPresenter` 就是用来显示文字或者图标的。
痛并快乐着。 如果我们要在按钮里放图标, 比如一个搜索的放大镜,我们就得把 `Content` 属性换成 ``。但是怎么让图标居中呢?这就得靠 `Grid` 布局了。我一般喜欢这样写:
至于那个鼠标滑动颜色,就是 `MouseEnter` 和 `MouseLeave` 事件。 还行。 我们在 `Border` 上加个 `Trigger`。比如:
当鼠标放上去的时候,背景色就变成红色。这个效果很简单,但是很实用。
文本框也是我们最常用的控件之一。但是默认的TextBox太丑了而且没有水印,也没有圆角。我想做一个带水印的圆角输入框,左边放个图标,右边放个清除按钮。这需求听起来很简单,但是做起来还是有点小坑的,在我看来...。
怎么给TextBox加水印呢?那个“三五月儿博客”的文章里说了有两种方法。一种是定义ControlTemplate,另一种是利用Border元素配合设置CornerRadius属性。我觉得定义ControlTemplate比较灵活。我们可以在模板里放一个 `TextBlock`,内容就是“请输入内容”,然后把它的颜色设为灰色。当TextBox有内容的时候,我们把那个TextBlock隐藏掉。当TextBox没内容的时候,显示TextBlock。这逻辑很简单,但是实现起来得用触发器,我悟了。。
这个功能比较复杂。左侧图标,我们直接在模板的最左边放一个 `Image` 或者 `TextBlock` 就行了。关键是右侧的清除按钮。这个按钮只有当TextBox有内容的时候才显示。我们可以用 `TemplateBinding` 来控制它的 `Visibility`,小丑竟是我自己。。
关于 `ClearTextCommand`,这个是绑定到ViewModel里的命令。如果你的TextBox是在Window里你也可以直接在代码后台写一个事件处理函数。
说了这么多,其实起来就几行代码的事情。但是要把它们组合好,还得考虑各种布局问题。比如 那个 `CornerRadius`,如果你在 `Window` 上设了20,但是在里面的 `Border` 上又设了5,看起来就会很奇怪。还有那个透明度,一定要搞清楚哪一层是透明的,哪一层是有颜色的。
我记得有一篇博文浏览阅读了1.6w次点赞4次。文章里提到, 如果需要更复杂的形状,如倒角,可以使用`Path`控件配合`Geometry`来绘制自定义形状的边框。比方说将一个`Image`控件放置在`Border`内,设置`Border`的`CornerRadius`属性,就可以让图片呈现出圆角效果。设置Wondows窗体为圆角。虽然这篇博文写得很乱,但是它提到了一个很重要的点,就是 `Path` 控件。如果你觉得 `Border` 的圆角不够用, 你可以画一个圆角的Path,然后把TextBox放在Path里面。这样就能做出各种奇怪的形状了,还行。。
其实搞这种自定义控件,项目结构很重要。你把样式放在哪里把资源字典放在哪里都得规划好。不然再说说找样式的时候,那叫一个头大。我一般喜欢把 `Common` 文件夹专门用来放这些自定义的控件模板, 比如 `RoundButton.xaml`,`RoundTextBox.xaml` 之类的。
好了不说了我的电脑好像卡住了。希望这篇文章能帮到那些跟我一样正在被WPF折磨的朋友。虽然写得很烂,但是毕竟是我一个个字敲出来的。如果你觉得哪里写错了别怪我, 我满足了。 毕竟我也没上过什么学,也就是在网上瞎混。如果要用这些代码,记得加上版权声明啊,虽然我也不知道版权归谁。
©著作权归作者所有。转载或内容合作请联系作者。社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。阿里云开发者社区用户服务协议》和 《.简介:原文:WPF 关于圆角的制作1、使用Boder: 设置CornerRadius属性 ... 2、创建ClippingBorder类: View Code using System; using System.Collections.Generic; using System.Linq; using System.Text; using System....,也许吧...
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback