0

Windows Store-Kit を使用して Windows Phone 8 アプリをテストしましたが、失敗しました。「リソース使用率が高い」と表示されます。私は MVVM-Pattern を使用しています。つまり、View 内の Elements を ViewModel プロパティにバインドしています。

使用率が高い場合の例: ContentControl を持つ MainView があります。ContentControl のコンテンツは別のビューです (ChildView と呼びましょう)。ChildView の TextBox をクリックすると、InputScope がポップアップし (入力できる場所)、View が表示されるので、TextBox が表示されます。ビューが上がると (TextBox がピボットにあることに注意してください)、遅延が始まります。TextBox のみにフォーカスし、Pivo​​tItem が上がるため、理由はわかりません。私の質問は、リソースの使用率を下げるにはどうすればよいですか? 必要なものがあれば、書いてください。ここに投稿します。

MainPage.xaml

 <Grid>
    <Grid x:Name="LayoutRoot"  HorizontalAlignment="Left">

        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>

        <ScrollViewer Name="MyScrollViewer" Height="Auto" HorizontalAlignment="Left" VerticalAlignment="Top" Width="Auto" HorizontalScrollBarVisibility="{Binding Horizontal}" VerticalScrollBarVisibility="{Binding Vertical}">
            <!--ContentPanel - zusätzliche Inhalte hier platzieren-->
            <StackPanel ScrollViewer.HorizontalScrollBarVisibility="Auto" Grid.Row="2" Opacity="50">
                <ContentControl Content="{Binding MyContent}" Name="MyContentControl" IsTabStop="False" VerticalContentAlignment="Stretch"  HorizontalContentAlignment="Stretch"/>
            </StackPanel>

        </ScrollViewer>
    </Grid>
</Grid>

ChildView.xaml http://textuploader.com/?p=6&id=zMDoD

Store-Kit の結果 (ドイツ語ですが、わかりやすいと思います) http://i.imagebanana.com/img/j6z24o9a/Unbenannt.png

これは、ビューの ViewModel のプロパティがどのように見えるかです (ストア キットの結果に表示されます)。

    private string _anlohnsteuer;
    public string ANLohnsteuer
    {
        get { return _anlohnsteuer; }
        set
        {
            _anlohnsteuer = value;
            RaisePropertyChanged(() => ANLohnsteuer);
        }
    }
4

2 に答える 2

0

この男の素晴らしい記事:

http://fiercedesign.wordpress.com/2012/08/14/windows-phone-performance-best-practices/

トピック「領域の再描画」を読んでください

UI が滑らかで流動的でない場合は、UI によって毎回再描画されている要素を確認する必要があります。これを行うには、App.xaml.cs に移動して Redraw Regions Application.Current.Host.Settings.EnableRedrawRegions = true; を有効にします。

領域または要素がちらつく場合は、何か問題があります。CacheMode="BitmapCache" を追加してみてください

あなたの要素に。

アプリで多くの色がちらつきました。変更していないにもかかわらず、UI が TextBlocks を再描画しました。すべての要素 (特に TextBlocks と Grids) を次のように変更するだけで済みました。

アプリは現在流動的です。

編集:他の5つのViewModelを初期化するMainViewModeがありました(MainViewには1つのContentControlが含まれており、ユーザーがクリックしたボタンに応じて、ContentControlは新しいViewを取得し、Viewは新しいViewModelを取得します)。起動時に 1 つの View と 1 つの ViewModel のみをロードするため、他の 4 つの ViewModel の初期化を BackgroundWorker に配置しました -> アプリの開始時間は 7 秒前でしたが、現在は 2 秒です!

于 2013-05-10T10:57:09.427 に答える