若只需在 WPF 前端顯示 DWG 內容,最直接的做法是:
DocumentViewer 控件載入 DWFx 檔案。程式碼:
XpsDocument xpsDocument = null;
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
if (xpsDocument != null) xpsDocument.Close();
try
{
xpsDocument = new XpsDocument(dlg.FileName, FileAccess.Read);
}
catch (UnauthorizedAccessException)
{
MessageBox.Show($"Unable to access {dlg.FileName}");
return;
}
docViewer.Document = xpsDocument.GetFixedDocumentSequence();
}
執行畫面:

DWFx 相容 XPS,所有圖形幾何資訊(含區塊參考經變換後)皆寫入 FixedPage,故顯示精確度與 AutoCAD 一致。
匯出過程將所有變換「展開」寫入 FixedPage,導致:
在 DWG 設計階段為同類區塊加入自訂屬性(如 EntityId=Computer、AssetTag=PC-001)。匯出 DWFx 時,這些屬性會保存在套件內的 Object Definition File 中。應用程式讀取該檔案即可建立「幾何圖形 ↔ 業務實體」的對應,實現互動式系統(如網咖管理:點擊電腦圖形 → 執行殺毒/部署)。
命名空間 System.Windows.Xps.Packaging 提供 XpsDocument、FixedDocumentSequenceReader/Writer、FixedDocumentReader/Writer、FixedPageReader/Writer 等型別,對應 XPS 文件層級結構。但此為通用 XPS API,無法直接操作 DWFx 專有結構(如 Object Definition、2D Streaming Graphics)。
作者提供一個 C# 類庫專案(四個子專案):
JeffreySun.Dwfx:基礎型別與錯誤處理。JeffreySun.Dwfx.Packing:讀取 DWFx 套件內容。JeffreySun.Dwfx.Converting:將 DWFx 內容轉換為 XAML + 自訂屬性。JeffreySun.DWFX2XAMLConverter:示範程式。專案結構:

此類庫僅供學習參考,不保證完整性與無錯誤,不提供技術支援。強烈建議研讀 DWFx 規格後自行實作。生產環境請務必修改命名空間與組件名稱。
系列至此結束。核心觀念:DWFx 保留精確幾何,自訂屬性賦予語義,兩者結合才能構建智慧型工程圖面應用。