跨多个Xaml文件拆分WPF接口

Dav*_*vey 47 wpf xaml

我正在尝试使用XAML创建用户界面.但是,该文件很快变得非常庞大并且难以使用.在多个文件中拆分它的最佳方法是什么.

我希望能够将一个元素(如ComboBox)的内容设置为在不同的xaml文件中定义的元素(但在同一个VS项目中).

谢谢

stu*_*ith 42

您可以通过定义UserControl来拆分大型用户界面.

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

然后,您可以使用命名空间声明在XAML中引用您的usercontrol.假设您想在窗口中包含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 ... />
Run Code Online (Sandbox Code Playgroud)

对于您的具体示例,您可以通过定义在您的usercontrol中显示数据的DataTemplate,在组合框中使用您的usercontrol.


EFr*_*ank 23

您可以使用ResourceDictionary拆分XAML文件.ResourceDictionary可用于合并其他文件:

<Page.Resources>
  <ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
      <ResourceDictionary Source="myresourcedictionary.xaml"/>
      <ResourceDictionary Source="myresourcedictionary2.xaml"/>
    </ResourceDictionary.MergedDictionaries>
  </ResourceDictionary>
</Page.Resources>
Run Code Online (Sandbox Code Playgroud)

在ResourceDictionary中,您还可以声明可以在元素中使用的样式,以便主XAML文件变小.

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