開源一個 Sliverlight 導航架構

來源:互聯網
上載者:User
文章目錄
  • 特點
  • 使用方法
  • 注意問題

開源項目中的一個 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 值, 否則也可能會出現問題。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.