開源一個 Sliverlight 導航框架


開源項目中的一個 Silverlight 導航框架, 源代碼已經發布到 GitHub, 地址為 https://github.com/beginor/AssemblyNavigation

特點

按需加載 Silverlight 組件

與 SL 內置實現了真正意義的按需加載, 主程序可以非常小, 最小不超過 200 KB, 只有當點擊鏈接之后, 才會去服務端下載 對應的組件, 每個組件文件只會下載一次。 如果要下載的組件引用了其它第三方的組件, 也會自動下載第三方組件, 下載第這些 時會自動過濾掉重復的組件。

幾乎零配置

使用這個導航框架幾乎不需要在客戶端或服務端做任何配置, 整個加載過程是自動完成的, 你需要寫的只是導航的菜單項。

使用方法

主程序

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 網站項目下載這個項目, 有一個完整的測試程序。

注意問題

  • 如果模塊引用的第三方組件只在 xaml 中使用, 則必須添加 x:Name 屬性, 否則可能會出現找不到這個第三方組件的問題;
  • 如果模塊的 xaml 中引用了 clrnamespace , 則必須指定 assembly 值, 否則也可能會出現問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM