0

HTML/JS/CSS を使用して Metro 用のアプリを作成する過程で、(Web タイプのアプリでよくあることですが) サイト全体で共有される共通の UI コンポーネントがあることに気付きました。すばやく完了するために、たとえば、ページからページへのナビゲーション AppBar をコピーして貼り付けています (すべてのページではなく一部のページで必要です。それ以外の場合は、ナビゲーションの親に配置します)。

このアプローチは、いくつかの理由で私を悩ませ始めています。

  • ナビゲーションに要素を追加する場合 (これは開発のこの段階でかなり頻繁に発生します)、nav 要素の HTML+ JS をナビゲーションのある各ページにコピー アンド ペーストする必要があります。
  • 個々のページの HTML および JS ファイルが、ページの目的に関係のないコードで汚染されています。
  • 開発者なら誰でも、これが優れたアプローチではない他の多くの理由を思い付くことができます。

ナビゲーション機能を独自の HTML/JS/CSS セットにカプセル化する独自のカスタム コントロールを定義できるようにしたいと考えています (ナビゲーターが子ページをデフォルトの HTML ページにロードする方法と同様)。また、そのようなコントロールにオプションを渡すとよいでしょう (「data-win-options」属性を使用すると思います)。これは、ASP.Net ユーザー コントロールまたは ASP.Net MVC パーシャル (およびその他の Web クライアント フレームワーク) とほぼ同等です。

残念ながら、現段階では、そのようなことをどのように行うべきかを説明するためのドキュメントはあまりありません。 C# と XAML のアプローチであり、HTML ではありません)。

それを念頭に置いて、私の質問は次のとおりです。

  • これは問題にアプローチする良い方法ですか?(私はそうだと思いますが、他の意見があれば聞いてみたいです)。
  • 問題に対する合理的に洗練されたソリューションを示す既存のサンプルがオンラインにありますか? もしそうなら、サンプルはどこにありますか? もちろん、解決策がある場合は、ここに回答を投稿してください。スタック オーバーフローがそれを気に入ってくれると確信しています...
4

1 に答える 1

0

ここにカスタム コントロールの作成を示すサンプルがあります。

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

このサンプルは、カスタム コントロールにセマンティック ズームを実装する方法を説明するように設計されていますが、サンプル カスタム コントロールを表示するという観点からは、少なくとも役立つはずです。

アプリ バーに関する限り、アプリ バーを default.html でホストできず、子ページを読み込むときに必要に応じてボタンを追加/削除できない理由はありますか? アプリ バーを必要としないページでは、無効にすることができます。

それが役立つことを願っています。

于 2012-08-05T00:43:12.300 に答える