开源一个 Sliverlight 导航框架
开源项目中的一个 Silverlight 导航框架, 源代码已经发布到 GitHub, 地址为 https://github.com/beginor/AssemblyNavigation 。
特点
按需加载 Silverlight 组件
与 SL 内置实现了真正意义的按需加载, 主程序可以非常小, 最小不超过 200 KB, 只有当点击链接之后, 才会去服务端下载 对应的组件, 每个组件文件只会下载一次。 如果要下载的组件引用了其它第三方的组件, 也会自动下载第三方组件, 下载第这些 时会自动过滤掉重复的组件。几乎零配置
使用这个导航框架几乎不需要在客户端或服务端做任何配置, 整个加载过程是自动完成的, 你需要写的只是导航的菜单项。使用方法
主程序
1. 添加对 AssemblyNavigation、 System.Windows.Controls.Navigation 的引用至项目;
2. 在主页面的 xaml 代码添加下面的 xmlns 引用:
1 2 | xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" xmlns:asmNav="clr-namespace:Beginor.AssemblyNavigation;assembly=Beginor.AssemblyNavigation" |
3. 添加 Frame 控件并设置 ContentLoader, 代码如下:
1 2 3 4 5 | < sdk:Frame Name="MainFrame" Grid.Row="1" Source="MainApp.WelcomePage,MainApp"> < sdk:Frame.ContentLoader > < asmNav:AssemblyNavigationContentLoader /> </ sdk:Frame.ContentLoader > </ sdk:Frame > |
模块
每个模块需要添加对 System.Windows.Controls.Navigation 的引用, 至少要有一个页面(否则就不是模块了), 这个 页面需要继承自 System.Windows.Controls.Page 类。
导航链接地址格式
导航地址的链接地址格式为要显示的模块的完整的类型名称, 例如:
1 2 3 4 5 6 | < StackPanel Orientation="Horizontal"> < HyperlinkButton Content="Welcome Page" NavigateUri="MainApp.WelcomePage,MainApp"/> < HyperlinkButton Content="Chart Page" NavigateUri="ChartModule.ChartPage,ChartModule"/> < HyperlinkButton Content="Map Page" NavigateUri="MapModule.MapPage,MapModule"/> < HyperlinkButton Content="Grid Page" NavigateUri="GridModule.GridPage,GridModule"/> </ StackPanel > |
如果还不够清楚, 可以从 GitHub 网站项目下载这个项目, 有一个完整的测试程序。
注意问题
- 如果模块引用的第三方组件只在 xaml 中使用, 则必须添加 x:Name 属性, 否则可能会出现找不到这个第三方组件的问题;
- 如果模块的 xaml 中引用了 clrnamespace , 则必须指定 assembly 值, 否则也可能会出现问题。
张志敏所有文章遵循创作共用版权协议,要求署名、非商业 、保持一致。在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处。
本博客已经迁移到 GitHub , 围观地址: https://beginor.github.io/
分类:
My Projects
, Silverlight
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架