HOW TO:處理大型 XAML 檔案
XAML 能夠表示複雜的資料結構。 因此,部分 XAML 檔案可能會變得很大。 例如,向量影像的 XAML 表示可能有幾個 MB 這麼大。 大型 XAML 檔案可能會在 WPF Designer for Visual Studio 中導致效能問題。 下列程序可協助您處理大型 XAML 區塊導致的效能問題。
僅 XAML 檢視
當您在 Visual Studio 中處理大型 XAML 檔案時,改善效能的最佳方式就是不要使用 WPF Designer中的 [設計] 檢視。 在 Visual Studio 中編輯 XAML 而不使用 [設計] 檢視的方式有兩種。
第一種方式是關閉 [設計] 檢視,只使用 [XAML] 檢視。 您可以變更 [文字編輯器] 選項,指定 XAML 檔案只能在完整的 [XAML] 檢視中開啟。 藉由使用這種方式,您就能有完整的 XAML 編輯支援、[文件大綱] 視窗和標記導覽。
第二種方式是使用原始程式碼編輯器。 您可以使用 [開啟方式] 對話方塊,在原始程式碼編輯器中開啟 XAML 檔案。 這是最輕量的方式,處理大型 XAML 檔案的效能最佳。 您會有完整的 XAML 編輯支援,但看不到 [文件大綱] 視窗和標記導覽。
若要在完整 XAML 檢視中開啟 XAML 檔案
在 [XAML] 的 [文字編輯器] 選項中,勾選 [永遠在完整 XAML 檢視中開啟文件] 選項。 如需詳細資訊,請參閱選項],文字編輯器] 中,XAML 中,格式設定。
當您下次開啟 XAML 檔案時,它就只會在 [XAML] 檢視中開啟。
若要在原始程式碼編輯器中開啟 XAML 檔案
在 [方案總管] 中,以滑鼠右鍵按一下要開啟的 XAML 檔案。
選取捷徑功能表上的 [開啟方式]。
在 [開啟方式] 對話方塊中選取 [原始程式碼 (文字) 編輯器],然後按一下 [確定]。
XAML 檔案就會在程式碼編輯器中開啟。
設計檢視
您可以使用 [設計] 檢視來處理大型 XAML 區塊,但可能會遇到效能問題。 下列建議可能有助於改善效能。
若要改善設計檢視處理大型 XAML 區塊的效能
將大型 XAML 區塊移至另一個 UserControl。 藉由使用這種方式,您就可以將大型 XAML 檔案加入到設計介面,而對效能的影響最小。
將大型 XAML 區塊移至 XAML 資源檔。 如果這個資源檔與自訂控制項相關聯,則大型 XAML 檔案就只會在設計工具開啟該自訂控制項時載入。
重組 XAML 的結構,將包含大型 XAML 區塊的更新減至最少。
下列程式碼範例示範一個 Canvas 項目,其中包含描述影像的大型 XAML 區塊。 如果變更其中一個同層級按鈕控制項,會強制父方格及其所有子系更新。 更新有大型 XAML 區塊的 Canvas 項目可能會拖慢效能。
<Window x:Class="WpfApplication1.MainWindow" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="300" Width="300"> <Grid> <Canvas> <!-- Many paths describing an image. --> </Canvas> <Button /> <Button /> <Button /> </Grid> </Window>
下列程式碼顯示如何重組前面的 XAML 結構,以避免發生效能問題。
<Window x:Class="WpfApplication2.MainWindow" xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="https://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="300" Width="300"> <Grid> <Canvas> <!-- Many paths describing an image. --> </Canvas> <Grid> <Button /> <Button /> <Button /> </Grid> </Grid> </Window>
請參閱
參考
概念
WPF 和 Silverlight 設計工具載入失敗疑難排解