有没有简单的方法来包含 xaml 代码块?
Is there an easy way to include chunks of xaml code?
编码 xaml 时,我们拥有出色的资源字典、样式、用户控件和模板化控件,使 xaml 可扩展且易于重用。
但是如何在多个地方包含相同的 xaml 代码块呢?
让我给一个examle。
我有一个要在所有 xaml 页面上使用的网格定义。
<!--Row definitions-->
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
就像现在一样,我只是将这个定义复制粘贴到我所有的 xaml 页面上。可以想象,即使是对网格定义添加最简单的更改也会变成一场噩梦。它不是干代码。
那么,还有更聪明的选择吗?就像在单独的 xaml 文件中定义块,然后编写类似
的内容
<includes:GridDefinitions>
在 PHP 中,您可以获得 Twig and Blade 等模板工具,您可以在其中编写主模板,然后对其进行扩展(下面的示例来自 twig)
base.html.twig
{% block content %}
{% endblock %}
page.html.twig*
{% extends "base.html" %}
{% block content %}
Content of the page...
{% endblock %}
他们甚至有一个 include 语句,它简单地获取一个 html 文件的所有内容,并将其包含在您放置标签的任何地方
{{ include('page.html') }}
那么问题来了
xaml 是否有某种模板引擎或包含我还不知道的功能?或者有没有办法利用资源字典等,达到类似DRY代码的效果?
如果我要查找的内容不清楚,请随时 post 发表评论并询问更多信息。
根据我的经验,您的问题没有直接答案,但您可以考虑以下一些选项:
- 对于 UI 的部分,stiles,... -- 如您在第一行中提到的,在单独的文件中定义 UserControls、字典、ContentConrols...。 (以防万一,如果你想要 "stylize" 像 RowDefinitions 这样的东西,你应该将它们包装到依赖对象中 - 这里是 a detailed article。)
- 对于类似的页面 -- 定义 Visual Studio 模板以生成预定义的 markup/files 等
- 对于类似的代码部分——定义code snippets - here is how-to for XAML。他们将在编码时工作。
编码 xaml 时,我们拥有出色的资源字典、样式、用户控件和模板化控件,使 xaml 可扩展且易于重用。
但是如何在多个地方包含相同的 xaml 代码块呢?
让我给一个examle。
我有一个要在所有 xaml 页面上使用的网格定义。
<!--Row definitions-->
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="Auto" />
<RowDefinition />
</Grid.RowDefinitions>
就像现在一样,我只是将这个定义复制粘贴到我所有的 xaml 页面上。可以想象,即使是对网格定义添加最简单的更改也会变成一场噩梦。它不是干代码。
那么,还有更聪明的选择吗?就像在单独的 xaml 文件中定义块,然后编写类似
的内容<includes:GridDefinitions>
在 PHP 中,您可以获得 Twig and Blade 等模板工具,您可以在其中编写主模板,然后对其进行扩展(下面的示例来自 twig)
base.html.twig
{% block content %}
{% endblock %}
page.html.twig*
{% extends "base.html" %}
{% block content %}
Content of the page...
{% endblock %}
他们甚至有一个 include 语句,它简单地获取一个 html 文件的所有内容,并将其包含在您放置标签的任何地方
{{ include('page.html') }}
那么问题来了
xaml 是否有某种模板引擎或包含我还不知道的功能?或者有没有办法利用资源字典等,达到类似DRY代码的效果?
如果我要查找的内容不清楚,请随时 post 发表评论并询问更多信息。
根据我的经验,您的问题没有直接答案,但您可以考虑以下一些选项:
- 对于 UI 的部分,stiles,... -- 如您在第一行中提到的,在单独的文件中定义 UserControls、字典、ContentConrols...。 (以防万一,如果你想要 "stylize" 像 RowDefinitions 这样的东西,你应该将它们包装到依赖对象中 - 这里是 a detailed article。)
- 对于类似的页面 -- 定义 Visual Studio 模板以生成预定义的 markup/files 等
- 对于类似的代码部分——定义code snippets - here is how-to for XAML。他们将在编码时工作。