7

Blend を使用すると XAML ファイルが非常に高速に大きくなるため、Silverlight の XAML ファイルには本当に問題があります。ほんの一握りのコントロールを追加してアニメーション化しただけで、テキストの壁になります。

デザイナーが XAML を見る必要さえないように、Blend のより良いバージョンがすぐに出てくることを願っています。ただし、今のところ、それは解決策ではありません。XAML は依然として手動で管理する必要があり、気のめいる作業です。

誰かがこれに対する解決策を見つけましたか? XAML ファイルをどのように整理していますか? 彼らが大きくなったとき、あなたはそれらをどのように理解しますか?

編集: Silverlight では、最も明白な WPF ソリューション (リソース ディクショナリに分割する) がサポートされていないため、Silverlight ソリューションに特に関心があります。

4

3 に答える 3

12

XAML ファイルを維持するには多少の作業が必要ですが、基本的には、自分にとって意味のあるスキームを使用してリソース ファイル (XAML リソース ディクショナリ) に分割する必要があります。

たとえば、次のようなフォルダー構造を持つスキームを使用します。

  • リソース (ユーザー コントロールとページを表す XAML ファイルを含む)

    • ステンシル (図形を含む XAML ファイル)
    • スタイル (スタイルを含む XAML ファイル)
    • ブラシ ( ... )
      • 共有
    • テンプレート ( ... )

構造は異なる場合がありますが、すべてのリソースを異なるファイルに分離すると、長期的にはメンテナンスがより簡単になります。

于 2008-11-05T12:42:55.643 に答える
8

プライベート リリースの 1 月から Silverlight 2 を使用しており、この問題に遭遇しました。すべての XAML が 1 つの大きなファイルに含まれていました。ベスト プラクティスとして行ったのは、ユーザー インターフェイスを視覚的な分類 (ヘッダー、フッター、ナビゲーション コントロールなど) に基づいて個別のユーザー コントロールに分割することでした。最初は、ネストされたキャンバスを使用しようとしました (グリッドはまだフレームワークに追加されていませんでした)。そして、これは後でメンテナンスの悪夢になりました。

Blend では、オブジェクトとタイムライン ウィンドウからキャンバス/グリッドなどを実際に選択して右クリックすると、[コントロールを作成] オプションが表示されます。これにより、メインの XAML ファイルを迅速にリファクタリングおよびモジュール化できます. 次に、イベントを使用して、ユーザー コントロールが相互に通信できるようにしました。

これがお役に立てば幸いです。幸運を祈ります。

于 2008-11-06T22:55:41.007 に答える
2

私はクリエイティブな開発者で、Blend を幅広く使用しています。

私は昨年、XAML をきれいに保つことについていくつかの考えを発表しました。

Silverlight は現在、MergedResourceDictionaries をサポートしていないため、別の投稿で提案したように、XAML を個別の ResourceDictionary ファイルに分割することは困難です。

Paul Stovell も、XAML に関する興味深いガイドラインをいくつか持っています。

于 2008-11-05T18:55:26.313 に答える