2008-10-22 65 views
41

我正在尝试使用XAML创建用户界面。但是,该文件正在迅速变得非常大,难以处理。将多个文件分割的最佳方式是什么?跨多个Xaml文件分割WPF界面

我希望能够将元素(如组合框)的内容设置为在另一个xaml文件(但在同一个VS项目中)中定义的元素。

感谢

回答

33

您可以通过定义UserControls拆分大型用户界面。

右键单击解决方案树,选择Add-> New Item ...然后选择User Control。你可以用正常的方式来设计它。

然后,您可以使用名称空间声明在XAML中引用您的usercontrol。假设你想将你的UserControl包含在一个窗口中。在下面的例子中,我添加了一个名为“foo”的用户控件命名空间“YourCompany.Controls”:通过定义一个DataTemplate

<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 ... /> 

为了您的具体的例子,你会利用你的用户控件中的组合框是在您的用户控件中显示数据。

+0

谢谢。这正是我需要的。 – 2008-10-22 08:15:36

22

您可以通过使用ResourceDictionary分手了XAML文件。该资源字典可用于合并其它文件:

<Page.Resources> 
    <ResourceDictionary> 
    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="myresourcedictionary.xaml"/> 
     <ResourceDictionary Source="myresourcedictionary2.xaml"/> 
    </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Page.Resources> 

在ResourceDictionary中,你也可以声明样式,你可以在你的元素使用,使得主XAML文件变得更小。

获得较小XAML文件的另一种可能性是定义自己的控件,然后在主应用程序中使用它。

+0

是的,直截了当的答案。它也适用于 Goodies 2016-06-10 19:19:45

-2

使用样式和用户控件。将您的界面分成较小的部分并在另一个xaml文件中编码。 例子:

<Window>
<VeryBigControl>
<VeryBigControl.Style>
... <!--very long style-->
</VeryBigControl.Style>
.. <!--content of very big control-->
</VeryBigControl
</Window>

将其划分为三个XAML文件:
Window.xaml - 这将是窗口
VeryBigControl.xaml - 这将是用户控件
VeryBigControlStyle.xaml - 这将是资源字典
等:)