3

WinRT アプリでは、XAML を介してグリッドとボタンの背景として画像を提供しました。

画像の読み込みに時間がかかり、アプリが最初に他のテキスト コントロール (TextBlock など) のみを表示し、しばらくすると画像が読み込まれることがわかりました。ページ内のテキスト コントロールのみが表示されるまで。

以下のように背景を設定しています

<ImageBrush ImageSource="ms-appx:////Images/image.png"/>

この問題を解決するために何ができるか教えてください。

ありがとう。

4

3 に答える 3

1

あなたはできる

  • 画像の解像度を下げる
  • ページを表示する前にロードするのを待ちます - どういうわけかそれを早く開始するか、ページを完全に黒く表示し、たとえば、画像がロードされるとフェードインします
  • 画像が読み込まれるまで、低解像度の画像またはその他のアセットを使用する
  • その画像は一切使わない

画像ソースが十分に早く設定された場合、WinRT は新しいページを表示する前に短時間 (ほんの一瞬) 待機して、遷移アニメーションなどの実行を開始する前に画像を読み込む機会を与えるという予感があります。 、したがって、画像の解像度を完全に下げるか、より高い解像度をロードする前に低い解像度を使用することが1つのアプローチです。

もう 1 つのオプションは、ルート フレームの外側に背景を配置することです。たとえば、App.xaml.cs を変更してルート ビジュアルとしてグリッドを配置し、背景画像とフレームをその内側に配置して、いつでも画像を変更できるようにします。

于 2013-02-22T06:56:18.690 に答える
0

CashModeプロパティを " BitmapCache "に設定してImageBrush通常の使用を試みる代わりに、次のようにします。Image

<Grid>
    <Image Source="ms-appx:////Images/image.png"
           CacheMode="BitmapCache" />

    <!-- Your other content above background image -->
</Grid>
于 2016-06-09T23:15:08.947 に答える
0

これは奇妙な動作ですが、レンダリング時間を最適化するために、より小さいサイズ/解像度の画像を選択することができます。

また、ページのコンストラクターで背景画像を設定してみてください - Microsoft は (確かではありませんが) 非同期操作を介して XAML 解析を処理する可能性があるためです。

于 2013-02-22T06:56:16.863 に答える