开源项目中的一个 Silverlight 导航框架, 源代码已经发布到 GitHub, 地址为 https://github.com/beginor/AssemblyNavigation 。
1. 添加对 AssemblyNavigation、 System.Windows.Controls.Navigation 的引用至项目;
2. 在主页面的 xaml 代码添加下面的 xmlns 引用:
xmlns:sdk="http://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 网站项目下载这个项目, 有一个完整的测试程序。