Windows 8.1でStandardStyles.xamlを取り除く

XAMLを使用してWindows 8アプリケーションを作成したことがある場合は、CommonStyleのアプリケーションにStandardStyles.xamlというファイルが追加されている可能性が高いでしょう。 私は多くの開発されたアプリケーションを見たので、私は人々がこのファイルをシステムコンポーネントに帰属させることが多く、それをまったく変更しないことに注意しなければなりませんでした。 時々それは良いことですが、より頻繁に悪いことです。 私が出会ったアプリケーションの中には、このリソースディクショナリのスタイルをまったく使用しないものが多くありますが、ファイルは不要であるため、ファイルのトリムや削除は一切行いません。

このファイルはVisual Studio Windows 8プロジェクトテンプレートに追加されており、テンプレートの一部の領域を定型化するのに役立ちます。 Windows 8.1のパフォーマンスを向上させるため、開発者はこのファイルまたはこのファイルから未使用のスタイルを削除しないことに注意しました。 また、Windows 8.1自体にいくつかのスタイル/遅延読み込みパターンを実装したため、このファイルをフレームワークに含めることにはいくつかの利点があることに気付きました。 このため、実際に確認したほとんどすべてのアプリケーションについて、Windows 8 / VS2012 StandardStyles.xamlファイルで使用可能なスタイルをアプリケーションから削除し、XAMLフレームワークに含まれるスタイルに置き換えることができます。



テキストスタイル



ファイルの機能のほとんどは、Windowsデザイン言語の活版印刷フォントテーブルに一致するテキストスタイルを提供することでした。 約100行のテキストスタイルを、フレームワークが提供する新しいスタイルに転送できるようになりました。 以下は、Windows 8.1アプリケーションで置き換える必要があるものの比較です。

StandardStyles.xaml(VS 2012) Windows 8.1 XAMLによって提供される名前
BasicTextStyle BaseTextBlockStyle
BaselineTextStyle 使用不可(BaseTextBlockStyleと組み合わせて)
HeaderTextStyle HeaderTextBlockStyle
SubheaderTextStyle SubheaderTextBlockStyle
TitleTextStyle TitleTextBlockStyle
SubtitleTextStyle SubtitleTextBlockStyle
BodyTextStyle BodyTextBlockStyle
CaptionTextStyle CaptionTextBlockStyle
BaseRichTextStyle BaseRichTextBlockStyle
BaselineRichTextStyle 使用不可(BaseRichTextBlockStyleと組み合わせて)
BodyRichTextStyle BodyRichTextBlockStyle
ItemRichTextStyle 使用不可(BodyRichTextBlockStyleと同じでした)


置換は非常に簡単です。{StaticResource SomeTextStyle}を使用した場所では{StaticResource FrameworkProvidedStyle}を使用する必要があるためです(もちろん、正しい名前を正しく指定する必要があります)。 他の場合と同様に、変更を加える場合は、アプリケーションをテストして、UIが期待どおりになることを確認してください。 スタイルの変更を続ける必要がある場合は、これらのスタイルを使用して独自のBasedOnを作成できます。



ボタンのスタイル



別のコンポーネントは、戻るボタン、テキストブロックボタン、最も使用されるAppBarButtonスタイルなどのボタンスタイルのセットでした。 TextButtonStyleスタイルはTextBlockButtonStyleになり、クリック可能なGridViewヘッダーセクションなどの領域の様式化されたボタンとして機能します。

戻るボタンのスタイルもいくつかありました。 AppBarButtonをWindows 8.1に導入した後、すぐに矢印の適切な文字を使用して、より優れた/特別なスタイルのテンプレートを提供できます。 StandardStyles.xamlのBackButtonStyle / SnappedBackButtonStyleを使用する代わりに、NavigationBackButtonNormalStyleとNavigationBackButtonSmallStyleを使用する必要があります。 標準スタイルは、ページで使用する必要がある基本スタイルであり、標準の41x41 pxボタンと同等です。 Smallスタイルは、狭い状態(以前はスナップと呼ばれていました)やその他の場合に使用できる30x30 pxのボタンスタイルです。

おそらく最も使用されているオブジェクトの1つはAppBarButtonスタイルでした。 さまざまなアプリバーボタンシンボルのスタイルセット用の約1100行のスタイル。 現在、UI向けに最適化され、現在190種類のアイコンがある標準ボタンを提供しています。 例として、Windows 8アプリケーションで使用できるものを次に示します。

<Button Style="{StaticResource PlayAppBarButtonStyle}" />
      
      





そして今、それは次のものに置き換えることができます:

 <AppBarButton Icon="Play" Label="Play" />
      
      





これにより、AppBarButtonStyleベーススタイルやその他のアイコンスタイルの必要性が減少します。 RTLテキストを記述する機能が必要な場合は、FlowDirectionプロパティを追加できます。 Labelプロパティは、直接アクセスのニーズを含め、デフォルトでAutomationProperties.Nameに直接マップされます。



リスト/グリッド要素テンプレート/スタイル



グリッド/分割テンプレートには、これらのテンプレートを使用したページで使用する要素テンプレートスタイルも含まれていました。 実際に使用されている場所を探して、それらが必要なページにのみ転送されました。 多くの人が自分のスタイル/テンプレートはApp.xamlにあるべきだと考えていますが、これはそうではなく、原則として、これは速度の点ではあまり良い解決策ではありません。 スタイルが1ページのみで使用される場合は、このページのリソースにスタイルを配置してください! これは、VS 2013プロジェクトテンプレートの特定のスタイルで行われたもので、アプリケーションサイズガイドに従って削除されたものもあります。



Visual Studio 2013を使用してスタイルを編集する



このすべてを使用する方法、これをすべて知る方法、さらにはこれらすべてをメモリから学習する方法さえ考えられます。 幸いなことに、Visual Studio 2013では、これらの新しいスタイルの可視性を高めるために、いくつかの優れた機能がツールに追加されました。 リソースパネルはそのまま残り、フレームワークによって提供されるスタイルを表示します。たとえば、Blendの次のスクリーンショットに示します。



エディターを好む場合でも、スタイルのIntelliSenseがVSに追加されたため、まだ良いニュースがあります!!! StaticResourceを使用すると、現在の要素のスタイルに適用されるスタイルのオートコンプリートが取得されます。 たとえば、TextBlockでは、次のスクリーンショットに示すように、TargetType = TextBlockに適用可能なスタイルのみが表示されます。



このIntelliSenceは、個人のカスタムスタイルと同じように機能します。これは、ツールのパフォーマンスが大幅に向上します。 これは私のお気に入りのVSイノベーションの1つです!

これらのスタイルの詳細をすべて表示したい場合は、Visual Studio / Blendのすばらしいテンプレート編集機能を使用して、それらすべてを検査できます。 スタイルがある場合は、カーソルがスタイルの名前の上にある間にF12(定義へ移動/定義へ移動)を押すだけです。 これにより、generic.xamlフレームワークでスタイルを定義することができます。



この優れた生産性向上機能は、XAMLのすべてのスタイル(独自のスタイルも含む)で使用できます。 これらのスタイルは、Windows SDKが提供するgeneric.xamlファイル(%programfiles%\ Windows Kits \ 8.1 \ Include \ WinRT \ XAML \ Designにあります)を表示して手動で検査することもできます。



まとめ

主な目標の1つは、すべてのユーザーのWindows 8.1の全体的なパフォーマンスを向上させることでした。 フレームワーク内で最もよく使用されるすべてのスタイルの動きを最適化することで、開発者は、共通テンプレートを使用するユーザーのコミュニティとしての一貫性と生産性、およびこれらのスタイルを提供するために個別に必要な各アプリケーションの負荷/解析時間を短縮するという新しい利点を得ることができました。



これがあなたを助けることを願っています!



All Articles