2009-06-04 13 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中更快。

相关问题