0

パノラマ ページを持つ Windows Phone 7.1 アプリケーションを開発しています。

このパノラマ ページには 2 つのパノラマ アイテムがあり、一方には 2 つのテキスト ブロックがあり、もう一方には bing マップ コントロールがあります。また、パノラマ コントロールの背景として 1.5 MB の画像を設定しました。

これはパノラマの XAML です。

<phone:PhoneApplicationPage 
    x:Class="XxXClass.DemoDetail"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:controls="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
    mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="800"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    SupportedOrientations="Portrait"  Orientation="Portrait"
    shell:SystemTray.IsVisible="False" Foreground="{x:Null}" xmlns:my="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps">
    <toolkit:TransitionService.NavigationInTransition>
        <toolkit:NavigationInTransition>
            <toolkit:NavigationInTransition.Backward>
                <toolkit:TurnstileTransition Mode="BackwardIn"/>
            </toolkit:NavigationInTransition.Backward>
            <toolkit:NavigationInTransition.Forward>
                <toolkit:TurnstileTransition Mode="ForwardIn"/>
            </toolkit:NavigationInTransition.Forward>
        </toolkit:NavigationInTransition>
    </toolkit:TransitionService.NavigationInTransition>
    <toolkit:TransitionService.NavigationOutTransition>
        <toolkit:NavigationOutTransition>
            <toolkit:NavigationOutTransition.Backward>
                <toolkit:TurnstileTransition Mode="BackwardOut"/>
            </toolkit:NavigationOutTransition.Backward>
            <toolkit:NavigationOutTransition.Forward>
                <toolkit:TurnstileTransition Mode="ForwardOut"/>
            </toolkit:NavigationOutTransition.Forward>
        </toolkit:NavigationOutTransition>
    </toolkit:TransitionService.NavigationOutTransition>
    <!--LayoutRoot contains the root grid where all other page content is placed-->
    <Grid x:Name="LayoutRoot">
        <controls:Panorama Title="Demonstation Tracker">
            <controls:Panorama.Background>
                <ImageBrush Stretch="Fill" ImageSource="/Images/demonstrationPanorama.png"/>
            </controls:Panorama.Background>

            <!--Panorama item one-->
            <controls:PanoramaItem Header="Details">
                <Grid Background="#73000000" Margin="0,0,0,26">
                    <TextBlock Height="42" Margin="8,8,174,0" TextWrapping="Wrap" Text="XXXX" VerticalAlignment="Top" FontSize="{StaticResource PhoneFontSizeLarge}"/>
                    <TextBlock Margin="8,54,8,8" TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Center" Height="413" Width="381" FontSize="{StaticResource PhoneFontSizeMedium}"><Run Text="xxx."/><Run Text=".."/></TextBlock>
                </Grid>
            </controls:PanoramaItem>

            <!--Panorama item two-->
            <controls:PanoramaItem Header="Map">
                <Grid>
                    <my:Map Name="map1" Margin="0,0,0,26" Height="420" Width="420" />
                </Grid>
            </controls:PanoramaItem>
        </controls:Panorama>
    </Grid>

    <!--Panorama-based applications should not show an ApplicationBar-->

</phone:PhoneApplicationPage>

初めてパノラマ ページに移動すると、長すぎて表示できなくなります。[戻る] ボタンをタップして戻ると、読み込みが速くなります。

パノラマのページの読み込みを速くするにはどうすればよいですか?

4

2 に答える 2

3

1.5Mbは大きすぎます。実行時にイメージは解凍され、メモリに保存されます。すでにメモリにあるため、2 回目は高速です。256Mb の RAM を搭載したデバイスをターゲットにする場合は、メモリ使用量を減らす必要があります。

これらを試してください:

  • 圧縮されたjpegを使用してください。ファイルサイズを最小限に抑えるようにしてください。
  • 背景画像は、480 x 800 ピクセルから 1024 x 800 ピクセル (幅 x 高さ) の間で、優れたパフォーマンス、最小限の読み込み時間、スケーリングなしを保証する必要があります。
  • 背景画像はリソースにする必要があります。
  • ツールキットのアニメーションを無効にする
  • PanoramaItems を 4 つに制限する

使いやすさのために、bing マップを非スライド対応ページに移動することも検討します。

于 2012-10-27T17:06:12.333 に答える
0

Map コントロールにコメントしてみてください。マップコントロールに問題があると確信しています。私は常にバックグラウンド スレッドでデータの初期化を行います。次に、データの準備ができたら、BeginInvoke を作成して UI を再描画します。確かに 1.5 MB は大きすぎるので、減らしてください。

于 2012-10-28T20:14:16.363 に答える