<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[羽木落凡的博客]]></title><description><![CDATA[昔有名凤，其名为栩。栩翼三千，落羽成林。]]></description><link>https://blog.csdn.net/wsadcg</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; wsadcg]]></copyright><item><title><![CDATA[Avalonia开发实践（七）——实现全局的弹窗遮罩]]></title><link>https://blog.csdn.net/wsadcg/article/details/148711351</link><guid>https://blog.csdn.net/wsadcg/article/details/148711351</guid><author>wsadcg</author><pubDate>Tue, 17 Jun 2025 13:41:05 +0800</pubDate><description><![CDATA[摘要：文章探讨了应用程序开发中Popup控件添加遮罩层的重要性。未加遮罩时，点击外部收回弹窗的动作容易被忽略，且可能误导用户认为背景按钮可点击。改进方案是在窗体顶层添加半透明遮罩层，通过简单的XAML布局和代码绑定实现全局遮罩效果，既突出弹窗内容又提升交互体验。具体实现只需两步：添加覆盖全屏的矩形控件，并在构造函数中绑定Popup的开启状态来控制遮罩显示。]]></description><category></category></item><item><title><![CDATA[Avalonia开发实践（六）——实现Breadcrumb(面包屑)控件]]></title><link>https://blog.csdn.net/wsadcg/article/details/147276286</link><guid>https://blog.csdn.net/wsadcg/article/details/147276286</guid><author>wsadcg</author><pubDate>Wed, 16 Apr 2025 16:48:21 +0800</pubDate><description><![CDATA[在Avalonia中实现面包屑控件]]></description><category></category></item><item><title><![CDATA[Avalonia开发实践（五）——如何用后台代码创建模板]]></title><link>https://blog.csdn.net/wsadcg/article/details/144878555</link><guid>https://blog.csdn.net/wsadcg/article/details/144878555</guid><author>wsadcg</author><pubDate>Tue, 07 Jan 2025 14:34:22 +0800</pubDate><description><![CDATA[在自定义TemplatedControl时，有时并不想借助资源文件来搭建控件的模板。比如一个容器型控件，它的模板可能只有一个ContentPresenter，其他的相关逻辑都是在后台代码中实现的。在WPF中，有FrameworkElementFactory这么个东西，借助它可以在后台代码中进行VisualTree的搭建。果不其然，源码中ContentControl便是用这种方式构建模板的。与上述思路不同的是，它需要在静态构造函数中，对Template属性进行覆盖，以达到模板应用的目的。遇事不决，先翻源码。]]></description><category></category></item><item><title><![CDATA[使用ElementUI中的el-table制作可编辑的表格]]></title><link>https://blog.csdn.net/wsadcg/article/details/144059285</link><guid>https://blog.csdn.net/wsadcg/article/details/144059285</guid><author>wsadcg</author><pubDate>Tue, 26 Nov 2024 16:59:32 +0800</pubDate><description><![CDATA[在前端开发时，可能会需要用到可编辑的表格控件。一些原生的UI框架并不支持Table控件的可编辑功能，所以只能自己实现。]]></description><category></category></item><item><title><![CDATA[NuGet如何支持HTTP源]]></title><link>https://blog.csdn.net/wsadcg/article/details/143934628</link><guid>https://blog.csdn.net/wsadcg/article/details/143934628</guid><author>wsadcg</author><pubDate>Thu, 21 Nov 2024 11:08:07 +0800</pubDate><description><![CDATA[今天是2024年11月21号，最近更新了VisualStudio后发现HTTP的包源已经默认禁止使用了，生成时会直接报错。官方也明确指出了要想使用HTTP包源的解决办法，这里就简单总结一下。]]></description><category></category></item><item><title><![CDATA[Avalonia开发实践（四）——关于Setter优先级的问题]]></title><link>https://blog.csdn.net/wsadcg/article/details/142929811</link><guid>https://blog.csdn.net/wsadcg/article/details/142929811</guid><author>wsadcg</author><pubDate>Mon, 14 Oct 2024 23:03:08 +0800</pubDate><description><![CDATA[Avalonia中属性值优先级与WPF有所不同，稍不注意就会吃大亏。]]></description><category></category></item><item><title><![CDATA[WPF中GroupBox的标题如何居中]]></title><link>https://blog.csdn.net/wsadcg/article/details/126426562</link><guid>https://blog.csdn.net/wsadcg/article/details/126426562</guid><author>wsadcg</author><pubDate>Wed, 24 Jul 2024 11:27:08 +0800</pubDate><description><![CDATA[原生的GroupBox标题不可调整排版，文章通过对模板的重写，对原生实现方式的优化，最终实现了Header排版的控制。]]></description><category></category></item><item><title><![CDATA[Avalonia开发实践（三）——实现GroupBox]]></title><link>https://blog.csdn.net/wsadcg/article/details/140626316</link><guid>https://blog.csdn.net/wsadcg/article/details/140626316</guid><author>wsadcg</author><pubDate>Wed, 24 Jul 2024 11:25:52 +0800</pubDate><description><![CDATA[近期在项目中要用到GroupBox，结果发现Avalonia原生框架中竟然没有这一控件。想着这个控件也不算复杂，索性就自己实现一个好了。]]></description><category></category></item><item><title><![CDATA[Avalonia开发实践（二）——开发带边框的Grid]]></title><link>https://blog.csdn.net/wsadcg/article/details/139859779</link><guid>https://blog.csdn.net/wsadcg/article/details/139859779</guid><author>wsadcg</author><pubDate>Tue, 09 Jul 2024 18:02:19 +0800</pubDate><description><![CDATA[在实际开发工作中，常常会用到Grid进行布局。为了美观考虑，会给每个格子加上边框，如下图：原生的Grid虽然有ShowGridLines属性可以控制显示格子之间的线，但线的样式不能定义，可以说此功能非常鸡肋。接下来我们自己动手实现Grid中的网格线！]]></description><category></category></item><item><title><![CDATA[好记性不如烂笔头（三）——文件保存后打开呈现乱码问题]]></title><link>https://blog.csdn.net/wsadcg/article/details/139953590</link><guid>https://blog.csdn.net/wsadcg/article/details/139953590</guid><author>wsadcg</author><pubDate>Tue, 25 Jun 2024 11:38:57 +0800</pubDate><description><![CDATA[部分中文在以ANSI编码保存文件后，打开时系统识别为UTF-8编码，导致显示乱码。]]></description><category></category></item><item><title><![CDATA[Avalonia开发实践（一）——对比WPF和Avalonia的边框渲染差异]]></title><link>https://blog.csdn.net/wsadcg/article/details/139416849</link><guid>https://blog.csdn.net/wsadcg/article/details/139416849</guid><author>wsadcg</author><pubDate>Mon, 03 Jun 2024 16:42:00 +0800</pubDate><description><![CDATA[众所周知，诸如Border、Rectangle等元素，是具有边框的。但在WPF和Avalonia中，边框的渲染机制有所不同。笔者对比了二者差异，并简要分析了产生原因和各自的优势。]]></description><category></category></item><item><title><![CDATA[WPF水流动画（使用转换器模拟逻辑门控制水流信号）]]></title><link>https://blog.csdn.net/wsadcg/article/details/139011040</link><guid>https://blog.csdn.net/wsadcg/article/details/139011040</guid><author>wsadcg</author><pubDate>Fri, 17 May 2024 20:19:21 +0800</pubDate><description><![CDATA[在使用WPF绘制流程图并模拟水流动画时，往往既需要控制阀泵的开合，又要控制动画启停。倘若能够将阀泵的开合与动画播放建立逻辑关系，即实现水流信号的模拟，这样就能够让业务代码“专心”地去控制阀泵开关，而不需要处理界面的展示效果。]]></description><category></category></item><item><title><![CDATA[VisualStudio给项目或解决方案右键菜单中添加选项]]></title><link>https://blog.csdn.net/wsadcg/article/details/127306198</link><guid>https://blog.csdn.net/wsadcg/article/details/127306198</guid><author>wsadcg</author><pubDate>Thu, 13 Oct 2022 20:59:11 +0800</pubDate><description><![CDATA[①顶部菜单选择：工具->外部工具②添加一个新的工具③顶部菜单选择：工具->自定义④在弹出的“自定义”对话框中，选择命令->上下文菜单->项目和解决方案上下文菜单]]></description><category></category></item><item><title><![CDATA[如何实现弧形渐变（以WPF为例）]]></title><link>https://blog.csdn.net/wsadcg/article/details/127022033</link><guid>https://blog.csdn.net/wsadcg/article/details/127022033</guid><author>wsadcg</author><pubDate>Sat, 24 Sep 2022 14:19:22 +0800</pubDate><description><![CDATA[三种方法实现渐变圆环]]></description><category></category></item><item><title><![CDATA[WPF 实现Circle控件（原Arc控件和Pie控件的合并版）]]></title><link>https://blog.csdn.net/wsadcg/article/details/126831006</link><guid>https://blog.csdn.net/wsadcg/article/details/126831006</guid><author>wsadcg</author><pubDate>Wed, 14 Sep 2022 17:38:13 +0800</pubDate><description><![CDATA[看过上一篇文章的应该知道，Arc和Pie的实现方式区别不过是一个把Path路径的终点与起点相连，一个没有相连，于是本人就索性把二者合二为一了。决定是画Arc还是画Pie，完全根据Stroke和Fill两个属性来判断。只需两个Circle即可构成环形进度条。]]></description><category></category></item><item><title><![CDATA[WPF中DataGrid动态生成列及自定义表头结构]]></title><link>https://blog.csdn.net/wsadcg/article/details/126284337</link><guid>https://blog.csdn.net/wsadcg/article/details/126284337</guid><author>wsadcg</author><pubDate>Thu, 11 Aug 2022 17:39:39 +0800</pubDate><description><![CDATA[DataGrid动态生成列并实现数据绑定，以及如何实现复杂的表头和列内容]]></description><category></category></item><item><title><![CDATA[Telerik的RadChartView添加图例]]></title><link>https://blog.csdn.net/wsadcg/article/details/125931168</link><guid>https://blog.csdn.net/wsadcg/article/details/125931168</guid><author>wsadcg</author><pubDate>Fri, 22 Jul 2022 14:14:04 +0800</pubDate><description><![CDATA[当我使用RadChartView绘制图表时，直接给Series设置SeriesLegendSettings并没有出现图例，后知后觉地发现，还需要单独添加RadLegend元素，绑定RadChartView的LegendItems。]]></description><category></category></item><item><title><![CDATA[WPF控件展柜]]></title><link>https://blog.csdn.net/wsadcg/article/details/123996092</link><guid>https://blog.csdn.net/wsadcg/article/details/123996092</guid><author>wsadcg</author><pubDate>Wed, 06 Apr 2022 18:01:44 +0800</pubDate><description><![CDATA[一直在思考如何能在一个页面尽量多的展示控件，终于还是轮播最适合这种场景





]]></description><category></category></item><item><title><![CDATA[如何清理系统应用程序名称缓存]]></title><link>https://blog.csdn.net/wsadcg/article/details/116886653</link><guid>https://blog.csdn.net/wsadcg/article/details/116886653</guid><author>wsadcg</author><pubDate>Sun, 16 May 2021 11:51:27 +0800</pubDate><description><![CDATA[在日常开发工作中，会遇到修改应用程序集名称（AssemblyTitle）的情况。该属性会被显示在任务栏右击弹出菜单中，如下：

但是，该属性和应用程序图标一样，会被缓存在系统注册表中。一旦创建，只要路径不变就不会更新。因此，在修改完AssemblyTitle之后，还应该清除系统注册表缓存，保证及时更新。
这里就将清理注册表缓存的方式列举如下：
1、找到注册表路径 HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCach]]></description><category></category></item><item><title><![CDATA[使用AutoMapper映射不具有无参构造函数的对象]]></title><link>https://blog.csdn.net/wsadcg/article/details/113693316</link><guid>https://blog.csdn.net/wsadcg/article/details/113693316</guid><author>wsadcg</author><pubDate>Fri, 05 Feb 2021 14:08:59 +0800</pubDate><description><![CDATA[最近在用DDD（领域驱动设计）进行框架搭建，当使用AutoMapper对DTO和实体进行对象映射时，遇到了一个问题。具体报错如下：
XXX needs to have a constructor with 0 args or only optional args.
很明显，AutoMapper需要被映射的对象有无参构造函数或者与构造函数的参数匹配。
于是便有了两种解决办法：
一是在领域实体对象中添加一个Protected类型的无参构造函数，这样也不会与设计原则相违背；
二是让含参构造函数的参数名与映射对象匹]]></description><category></category></item></channel></rss>