我正在尝试使用 XAML 创建用户界面。但是,该文件很快变得非常大并且难以处理。将其拆分为多个文件的最佳方法是什么。
我希望能够将诸如 ComboBox 之类的元素的内容设置为在不同 xaml 文件中定义的元素(但在同一个 VS 项目中)。
谢谢
您可以通过定义 UserControls 来拆分大型用户界面。
右键单击解决方案树,选择 Add->New Item... 然后选择 User Control。您可以按常规方式进行设计。
然后,您可以使用命名空间声明在 XAML 中引用您的用户控件。假设您想在一个窗口中包含您的 UserControl。在以下示例中,我将一个名为“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 文件的另一种可能性是定义您自己的控件,然后在您的主应用程序中使用这些控件。
使用样式和用户控件。将您的界面划分为较小的部分,并将它们编码到另一个 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 - 这将是资源字典
等等 :)