2016-05-31 74 views
0

编码xaml时,我们拥有出色的资源字典,样式,用户控件和模板化控件,以使xaml可扩展且易于重用。有没有简单的方法来包含xaml代码块?

但是,包括相同的xaml代码块多个地方呢?

让我举个例子。

我有一个网格定义,我想在我所有的xaml页面上使用。

<!--Row definitions--> 
<Grid.RowDefinitions> 
    <RowDefinition Height="50" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition /> 
</Grid.RowDefinitions> 

现在,我只是简单地将此定义粘贴到我所有的xaml页面上。正如你可以想象的那样,即使对网格定义进行最简单的修改也会变成一场噩梦。这是干的代码。

那么,有没有更聪明的选择?就像在一个单独的XAML文件中定义的块,然后写类似

<includes:GridDefinitions> 

在PHP中,你可以得到模板工具,如TwigBlade,你写一个主模板,然后扩展它(下面的示例是从小枝)

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代码效果?

如果我要找的内容不清楚,请随时发表评论并索取更多信息。

回答

1

从我的经验没有直接回答你的问题,但这里有一些选项,你可以考虑:

  1. 对于UI的部分,梃,... - 定义用户控件,字典,ContentConrols。如你在第一行中提到的,在单独的文件中。 (以防万一,如果你想“风格化”像RowDefinitions这样的东西,你应该将它们包装到依赖对象中 - 这里是a detailed article。)
  2. 对于类似的页面 - 定义Visual Studio模板以生成预定义的标记/文件等。
  3. 对于类似的代码部分--define code snippets - 这里是how-to for XAML。他们将在编码时间工作。
+0

这不完全是我在找的东西,但恐怕它是最接近的我会得到:P – MartinJH

相关问题