<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qll766的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qll766</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qll766]]></copyright><item><title><![CDATA[WPF UI 界面开发学习笔记--健身仪表盘（布局、样式、图标、LiveCharts2图表）]]></title><link>https://blog.youkuaiyun.com/qll766/article/details/163706137</link><guid>https://blog.youkuaiyun.com/qll766/article/details/163706137</guid><author>qll766</author><pubDate>Thu, 13 Aug 2026 14:50:50 +0800</pubDate><description><![CDATA[层
职责
存放位置




结构层
用 XAML 搭建元素树，定义布局与控件实例
XAML 文件


样式层
定义控件的外观、颜色、圆角、模板等
App.xaml 资源字典


数据层
为自定义控件暴露绑定属性，驱动内容与状态
UserControl 的依赖属性


二、UI界面开发流程与设计模式
除了自定义控件布局外，主界面代码集中在 
2.1拆图定骨架 —— 三层拆解法落地

三层拆解逻辑：从外到内依次拆分「整体框架 → 区域模块 → 元素控件」，先搭骨架再填内容
容器选型口诀：复杂行列用 Grid、线]]></description><category></category></item><item><title><![CDATA[WPF Prism9 模块化实战学习笔记3（\.NET10\+DryIoc）导航系统实战--导航栏切换界面]]></title><link>https://blog.youkuaiyun.com/qll766/article/details/163421019</link><guid>https://blog.youkuaiyun.com/qll766/article/details/163421019</guid><author>qll766</author><pubDate>Mon, 03 Aug 2026 11:02:21 +0800</pubDate><description><![CDATA[原生// 使用调度器延迟打开，规避菜单一闪消失路由事件冲突BUG AssociatedObject . Dispatcher . BeginInvoke(new Action(() => {// 解绑事件，防止内存泄漏 AssociatedObject . Click -= OnMouseLeftClick;// 使用调度器延迟打开，规避菜单一闪消失路由事件冲突BUG// 解绑事件，防止内存泄漏重写。]]></description><category></category></item><item><title><![CDATA[WPF Prism9 模块化实战学习笔记2（\.NET10\+DryIoc）-绑定属性、按钮事件、消息发布订阅、弹窗]]></title><link>https://blog.youkuaiyun.com/qll766/article/details/163243997</link><guid>https://blog.youkuaiyun.com/qll766/article/details/163243997</guid><author>qll766</author><pubDate>Tue, 28 Jul 2026 16:51:17 +0800</pubDate><description><![CDATA[采用发布-订阅模式，实现模块之间解耦通信。发布者 和 订阅者不需要互相引用项目完全松耦合，适合模块化大型项目通过统一的事件载体传递自定义数据架构规范：消息实体、事件类统一放在公共库Common，所有模块引用Common。不允许把事件定义在业务模块内部，否则会产生循环引用。继承 Prism 的，泛型参数为我们的消息实体./// 全局消息事件。]]></description><category></category></item><item><title><![CDATA[WPF Prism9 模块化实战学习笔记1（\.NET10\+DryIoc）]]></title><link>https://blog.youkuaiyun.com/qll766/article/details/163114910</link><guid>https://blog.youkuaiyun.com/qll766/article/details/163114910</guid><author>qll766</author><pubDate>Thu, 23 Jul 2026 11:02:03 +0800</pubDate><description><![CDATA[本文基于原生WPF项目一步步手动集成Prism9框架，完整实现：项目搭建、模块化拆分、MVVM架构、Region区域导航、模块解耦开发，全程记录实操步骤，适合新手入门学习Prism核心原理。开发环境：Visual Studio 2026、.NET 10、Prism 9.0.537、DryIoc依赖注入容器为了清晰看到每一步Prism改造细节，我们不使用Prism模板，先创建无任何框架依赖的原生WPF项目。打开Visual Studio，选择【创建新项目】，搜索关键词 WPF，选择 C# WPF 应用程序。
]]></description><category></category></item><item><title><![CDATA[GPT模型架构详解]]></title><link>https://blog.youkuaiyun.com/qll766/article/details/160358083</link><guid>https://blog.youkuaiyun.com/qll766/article/details/160358083</guid><author>qll766</author><pubDate>Tue, 26 May 2026 17:24:01 +0800</pubDate><description><![CDATA[Embedding:     离散 → 连续（进入神经网络的世界）Transformer:   提取复杂的上下文依赖（核心计算）LayerNorm:     稳定输出分布（为预测做准备）Linear Head:   隐藏空间 → 词汇表空间（回到离散世界）]]></description><category></category></item><item><title><![CDATA[Transformer单元块的代码实现、原理和张量流动过程]]></title><link>https://blog.youkuaiyun.com/qll766/article/details/160629630</link><guid>https://blog.youkuaiyun.com/qll766/article/details/160629630</guid><author>qll766</author><pubDate>Wed, 29 Apr 2026 16:51:49 +0800</pubDate><description><![CDATA[核心思想: "变换但不改变维度"输入: (batch, seq_len, emb_dim)↓经过复杂的计算↓输出: (batch, seq_len, emb_dim) ← 维度完全相同三个关键机制:- 稳定训练- 加速收敛- 解决梯度消失- 允许信息直通- 防止过拟合- 提高泛化能力两个子模块:- 捕捉全局依赖- "谁和谁相关"- 独立处理每个位置- 提取高阶特征这种设计使得我们可以堆叠数十甚至数百个 TransformerBlock，构建出强大的语言模型！]]></description><category></category></item><item><title><![CDATA[标准多头注意力机制维度变换解析]]></title><link>https://blog.youkuaiyun.com/qll766/article/details/160325076</link><guid>https://blog.youkuaiyun.com/qll766/article/details/160325076</guid><author>qll766</author><pubDate>Mon, 20 Apr 2026 13:48:45 +0800</pubDate><description><![CDATA[这篇文章详细解析了多头注意力机制中的张量维度变换过程。通过Python代码演示，展示了从输入张量(batch_size=2, num_tokens=3, d_in=4)到最终输出的完整流程。关键步骤包括：1)线性投影生成Q/K/V矩阵；2)reshape操作将8维特征分割为2个头(每个头4维)；3)转置操作调整维度顺序；4)计算注意力分数并应用因果掩码；5)softmax归一化；6)加权求和生成上下文向量。文章特别强调了view/reshape操作如何在不改变数据的情况下重组张量结构，以及多头机制如何并行处]]></description><category></category></item><item><title><![CDATA[Android底部导航栏切换页面填坑]]></title><link>https://blog.youkuaiyun.com/qll766/article/details/83243968</link><guid>https://blog.youkuaiyun.com/qll766/article/details/83243968</guid><author>qll766</author><pubDate>Sun, 21 Oct 2018 19:05:08 +0800</pubDate><description><![CDATA[**
Android底部导航栏切换页面填坑
**
这个效果的实现关键点就是给选项赋予两种状态，focused和normal,在主程序中用监听判断是否被选中，就给被选中的选项设focused为true,在选项的逻辑代码中判断为true时，就显示focused的图片，否则显示normal的图片。

在使用transaction.add()方法时会警告错误，找不到add方法，transaction.ad...]]></description><category></category></item><item><title><![CDATA[Android底部导航栏切换界面，点击选项时文字和图标改变颜色]]></title><link>https://blog.youkuaiyun.com/qll766/article/details/83243703</link><guid>https://blog.youkuaiyun.com/qll766/article/details/83243703</guid><author>qll766</author><pubDate>Sun, 21 Oct 2018 18:31:57 +0800</pubDate><description><![CDATA[**
类似底部导航栏的菜单，点击图标，文字和图标都变颜色，Fragment切换界面详解
**
先看效果图

以下是全部完整代码，如果有问题欢迎留言

图标和文字布局color_change.xml

 &amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;amp;gt;
    &amp;amp;lt;LinearLayout xmlns:android=&amp;quot;http:]]></description><category></category></item></channel></rss>