首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开源一个 Sliverlight 导航框架

开源一个 Sliverlight 导航框架

作者头像
beginor
发布2020-08-10 10:58:00
4360
发布2020-08-10 10:58:00
举报

开源一个 Sliverlight 导航框架

开源项目中的一个 Silverlight 导航框架, 源代码已经发布到 GitHub, 地址为 https://github.com/beginor/AssemblyNavigation

特点

按需加载 Silverlight 组件

与 SL 内置实现了真正意义的按需加载, 主程序可以非常小, 最小不超过 200 KB, 只有当点击链接之后, 才会去服务端下载 对应的组件, 每个组件文件只会下载一次。 如果要下载的组件引用了其它第三方的组件, 也会自动下载第三方组件, 下载第这些 时会自动过滤掉重复的组件。

几乎零配置

使用这个导航框架几乎不需要在客户端或服务端做任何配置, 整个加载过程是自动完成的, 你需要写的只是导航的菜单项。

使用方法

主程序

1、 添加对 AssemblyNavigation、 System.Windows.Controls.Navigation 的引用至项目;

2、 在主页面的 xaml 代码添加下面的 xmlns 引用:

xmlns:sdk="https://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
xmlns:asmNav="clr-namespace:Beginor.AssemblyNavigation;assembly=Beginor.AssemblyNavigation"

3、 添加 Frame 控件并设置 ContentLoader, 代码如下:

<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 类。

导航链接地址格式

导航地址的链接地址格式为要显示的模块的完整的类型名称, 例如:

<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 值, 否则也可能会出现问题。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开源一个 Sliverlight 导航框架
    • 特点
      • 按需加载 Silverlight 组件
      • 几乎零配置
    • 使用方法
      • 主程序
      • 模块
      • 导航链接地址格式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档