跨多个Xaml文件分割WPF界面
我正在尝试使用XAML创build用户界面。 但是,该文件正在迅速变得非常大,难以处理。 什么是最好的方式分裂它跨越几个文件。
我想能够将一个元素,如一个combobox的内容设置为一个不同的xaml文件(但在同一VS项目)定义的元素。
谢谢
您可以通过定义UserControl来拆分大型用户界面。
右键单击解决scheme树,selectAdd-> New Item …然后selectUser Control。 你可以用正常的方式来devise它。
然后,您可以使用名称空间声明在XAML中引用您的usercontrol。 假设你想将你的UserControl包含在一个Window中。 在下面的例子中,我将名为“Foo”的UserControl添加到名为“YourCompany.Controls”的命名空间中:
<Window x:Class="YourCompany.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Controls="clr-namespace:YourCompany.Controls"> <Controls:Foo ... />
对于你的具体例子,你可以通过定义一个在你的用户控件中显示数据的DataTemplate来使用你的用户控件。
您可以使用ResourceDictionary分割XAML文件。 ResourceDictionary可以用来合并其他文件:
<Page.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="myresourcedictionary.xaml"/> <ResourceDictionary Source="myresourcedictionary2.xaml"/> </ResourceDictionary.MergedDictionaries> </ResourceDictionary> </Page.Resources>
在ResourceDictionary中,还可以声明可以在元素上使用的样式,以便主XAML文件变得更小。
另一种获得较小XAML文件的可能性是定义自己的控件,然后在主应用程序中使用它们。
您也可以创build一个页面 ,而不是一个UserControl
。 Page
可以由Window
或框架托pipe。 search页面vs用户控件的优点和缺点。 这取决于您对导航的要求,最适合您的需求。
这是一个在框架中使用页面的例子。
使用样式和用户控件。 将您的界面分成较小的部分,并在另一个xaml文件中编码。 例:
<Window>
<VeryBigControl>
<VeryBigControl.Style>
... <!--very long style-->
</VeryBigControl.Style>
.. <!--content of very big control-->
</VeryBigControl
</Window>
将其分成三个xaml文件:
Window.xaml – 这将是Window
VeryBigControl.xaml – 这将是UserControl
VeryBigControlStyle.xaml – 这将是资源字典
等等 :)