首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

使用 Silverlight 建構工作流設計器(十二):換膚機制實作與 XAML 動態載入

     編輯:關於ASP.NET

本章更新內容

  • 新增更清晰美觀的活動圖形
  • 支援方向鍵移動選取物件(Ctrl 鍵加速)
  • 實作第十章提出的動態換膚功能

動態換膚實作步驟

以 Activity.xaml 為例,示範如何在執行時切換外觀樣板:

  1. 複製自動生成的程式碼:從 obj\Debug\Designer\Activity.g.cs 複製欄位宣告與 InitializeComponent 方法至 Activity.xaml.cs。
  2. 移除重複程式碼:編譯會報錯(重複定義),刪除 Activity.g.cs 內容並重新編譯。
  3. 啟用斷點除錯:註解 [System.Diagnostics.DebuggerNonUserCodeAttribute()] 屬性,使 InitializeComponent 可設中斷點。
  4. 建立新樣板:複製 Activity.xaml 為 Activity2.xaml,清空對應的 Activity2.g.cs,並修改樣式(如顏色、形狀)。
  5. 修改載入路徑:在 Activity.xaml.cs 中將 LoadComponent 的 URI 參數從 /Activity.xaml 改為 /Activity2.xaml。
  6. 執行驗證:應用程式即載入新樣板外觀。
// 原始
System.Windows.Application.LoadComponent(this, new System.Uri("/ShareDesigner;component/Designer/Activity.xaml", System.UriKind.Relative));
// 修改為
System.Windows.Application.LoadComponent(this, new System.Uri("/ShareDesigner;component/Designer/Activity2.xaml", System.UriKind.Relative));

深入思考

  1. 多樣板時不應一次性下載所有 XAML,期望動態從網路下載 XAML 內容(尚未找到成熟方案)。
  2. 可將 .xaml.cs 移出,樣板檔(.xaml)獨立管理於資料夾。
  3. 自動生成的 .g.cs 能否抑制?目前編譯時必然產生於 obj\Debug 目錄。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved