代码之家  ›  专栏  ›  技术社区  ›  David Turvey

跨多个XAML文件拆分WPF接口

  •  44
  • David Turvey  · 技术社区  · 18 年前

    我正在尝试使用XAML创建用户界面。然而,文件很快变得非常大,很难处理。将其拆分为多个文件的最佳方法是什么?

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

    谢谢

    4 回复  |  直到 10 年前
        1
  •  38
  •   stusmith    18 年前

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

    右键单击解决方案树,选择“添加”->新建项目…然后是用户控件。你可以用普通的方法设计这个。

    然后可以使用名称空间声明在XAML中引用用户控件。假设您希望在窗口中包含您的用户控件。在下面的示例中,我向命名空间“yourcompany.controls”添加了一个名为“foo”的用户控件:

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

    对于您的特定示例,您将通过定义一个在用户控件中显示数据的数据模板,在组合框中使用您的用户控件。

        2
  •  22
  •   EFrank    18 年前

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

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

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

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

        3
  •  1
  •   Mike de Klerk    10 年前

    您还可以创建 Page ,而不是 UserControl . 一 Page 可以由 Window 或由 Frame . 搜索页面与用户控件的优缺点。这在一定程度上取决于你对导航的要求,这将最适合你的需要。

    Here is an example of using a Page in a Frame.

        4
  •  -2
  •   Andrey Neverov    18 年前

    使用样式和用户控件。将接口划分为较小的部分,并将它们编码到另一个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-这将是资源字典
    等等:

    推荐文章