0

在通过 HTML/JS/CSS 为 Metro 创建应用程序的过程中,我注意到(与 Web 类型的应用程序一样)存在跨站点共享的通用 UI 组件。为了快速完成它,我一直在复制和粘贴,例如,从一个页面到另一个页面的导航 AppBar(它在某些但不是所有页面中都是必需的,否则我会将它放在导航父级中)。

由于以下几个原因,这种方法开始困扰我:

  • 如果我在导航中添加元素,这在开发的这个阶段经常发生,我必须将导航元素的 HTML + JS 复制并粘贴到每个具有导航的页面中。
  • 我个人页面的 HTML 和 JS 文件被与页面目的无关的代码污染了。
  • 任何开发人员都可能提出许多其他原因说明这不是一个好方法。

我希望能够定义我自己的自定义控件,它将导航功能封装到它自己的一组 HTML/JS/CSS 中(类似于导航器将子页面加载到默认 html 页面中的方式)。将选项传递给这样的控件也很好(我想是通过“data-win-options”属性)。这或多或少等同于 ASP.Net User Controls 或 ASP.Net MVC Partials(以及任何其他 Web 客户端框架,我敢肯定)。

不幸的是,在这个阶段,并没有太多的文档来指导我应该如何去做这样的事情——或者如果我还没有看到它(我找到了与C# 和 XAML 方法,而不是 HTML)。

因此,考虑到这一点,我的问题是:

  • 这是解决问题的好方法吗?(我相信是,但如果有其他意见,我很想听听)。
  • 是否有任何现有的在线示例可以证明该问题的合理优雅的解决方案 - 如果有,这些示例在哪里?当然,如果您有答案,欢迎您在此处发布解决方案 - 我敢肯定,如果您这样做,Stack Overflow 会喜欢它...
4

1 回答 1

0

这里有一个示例演示如何创建自定义控件:

http://code.msdn.microsoft.com/windowsapps/SemanticZoom-for-custom-4749edab

该示例旨在说明在自定义控件中实现语义缩放,但从向您展示示例自定义控件的角度来看,它至少应该有所帮助。

就应用栏而言,是否有理由不能将应用栏托管在 default.html 中,并在加载子页面时根据需要在子页面中添加/删除按钮?对于不需要应用栏的页面,您可以禁用它。

希望有帮助。

于 2012-08-05T00:43:12.300 回答