2009-06-04 18 views
10

我最近發現我可以使用用戶控件來減小主應用程序的.xaml文件的大小。我對WPF很陌生,並意識到我的應用程序的XAML變得非常長,速度非常快,而且很難瀏覽。什麼是在我的應用程序中分解大型XAML文件的最簡單方法?

用戶控制是解決此問題的最佳方法(即在單獨的控制庫中有許多用戶控件及其模板)?

你如何管理你的XAML?

在此先感謝!

回答

9

將事情拆分爲單獨控件可以幫助減小單個xaml文件的大小是正確的。 減小文件大小的另一種方法是使用ResourceDictionaries。當您將樣式,模板和資源拆分爲獨立的資源字典時,它可以大大減少窗口和控件的xaml文件的大小。一旦東西分裂,您可以利用MergedDictionaries功能從您需要的任何地方訪問樣式和模板。如果在多個窗口和控件中使用特定資源,則還可以將其ResourceDictionary合併到App.xaml資源中,從而允許從解決方案中的任何位置使用它。

就我個人而言,我喜歡將每個XAML文件保留在大約300條或更少的行,在那之後我會看到是否有更好的方法來組織它。 Here是關於如何保持資源組織的一些額外信息和提示。

+0

我會研究使用ResourceDictionaries。我知道必須有某種形式的組織可以忽略。非常感謝你的幫助。 – stevosaurus 2009-06-04 18:13:43

+0

添加信息鏈接已死,但[此處](http://web.archive.org/web/20100629015119/http://groups.google.com.au/group/wpf-disciples/web/wpf-and- xaml-coding-guidelines)它在WayBackMachine中。 – 2017-05-28 08:01:40

1

同樣爲了主題/造型避免在控件/個人級別放置樣式,而是讓theme.xaml直接處理蒙皮,這樣您就不會在Xaml內部存在大量的樣式信息。

<MyControl Style="{StaticResource myControlStyle}"/>可以通過在主題文件直接應用的造型上MyControl,這樣可以避免你只有 <MyControl/>在Window.xaml

1

用戶控件隔離碼出的一個很好的方法主窗口。除了清理外,他們還提供其他優點,例如模塊化代碼,併爲代碼段提供有限的接口,這有助於提高可維護性並有助於防止意大利麪代碼。

除此之外,DataTemplates也是有用的。例如,假設您有一堆需要輸入的字段,並且所有這些字段都有標籤。在這種情況下,您可以創建一個具有兩個屬性的類,一個用於標籤,另一個用於該字段的值。然後,您可以爲該類創建一個DataTemplate,將該標籤綁定到TextBlock,並將該值綁定到TextBox。如果你想要所有的標籤對齊,你可以創建一個Grid SharedSizeScope。在完成之後,您可以創建該類的ObservableCollection,使用標籤和值填充集合,然後將ItemsControl的ItemsSource設置爲它。在完成這個過程之後,數據輸入表單的生成方式可以比在WinForms中更快。

相關問題