0

アプリに単純な Twitter フィードを表示しており、コンテキスト メニューに更新メソッドを実装しています。問題は、コンテキスト メニューの表示のパフォーマンスが低下することです (アイテムの数の問題ではなく、ほんの数個で発生します)。非常に長くタップ/ホールドする必要があるようで、コンテキストメニューが表示されます-スムーズなアニメーションではなく、少し衝撃があります. 理想的には、アイテムをタップしたことを即座にフィードバックし、スムーズなアニメーションでコンテキスト メニューが表示されるピープル ハブのように機能させるとよいでしょう。

私を困惑させるもう 1 つの部分は、コンテキスト メニューが表示されたときに、画面の残りの部分が「背景に縮小」して、選択した項目に注意を引くことです。これはパフォーマンスの問題と関係があるようです。繰り返しになりますが、この問題に関する理想的な行動については、ピープル ハブを参照してください。

これをより適切に実装するためのヒントはありますか?

ここに私のxamlがあります:

        <!-- twitter feed-->
        <controls:PivotItem Header="feed">
            <ScrollViewer>

                <StackPanel>
                    <ItemsControl ItemsSource="{Binding Tweets}">
                        <ItemsControl.ItemTemplate>
                            <DataTemplate>
                                <Border Padding="12">

                                    <toolkit:ContextMenuService.ContextMenu>
                                        <toolkit:ContextMenu >
                                            <toolkit:MenuItem Header="refresh" Command="{Binding Main.RefreshTweetsCommand, Source={StaticResource Locator}}" />
                                        </toolkit:ContextMenu>
                                    </toolkit:ContextMenuService.ContextMenu>

                                    <StackPanel Orientation="Horizontal">
                                        <Image Source="{Binding user.profile_image_url}" Margin="0,12,0,0" Height="80" Width="80" Stretch="UniformToFill" VerticalAlignment="Top"/>
                                        <Border Padding="12,0,0,0">
                                            <StackPanel>
                                                <TextBlock Text="{Binding user.name}" Foreground="Blue" FontSize="30" />
                                                <TextBlock Text="{Binding date_created}" FontSize="16"/>
                                                <TextBlock Text="{Binding text}" FontSize="20" TextWrapping="Wrap" Width="320" />
                                            </StackPanel>
                                        </Border>
                                    </StackPanel>                                       

                               </Border>
                            </DataTemplate>
                        </ItemsControl.ItemTemplate>
                    </ItemsControl>
                    <TextBlock Text="more . . ." FontSize="32" Padding="20">
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="Tap">
                                <cmd:EventToCommand Command="{Binding MoreTweetsCommand, Mode=OneWay}"/>
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                    </TextBlock>
                </StackPanel>
            </ScrollViewer>
        </controls:PivotItem>
4

1 に答える 1

1

「バックグラウンドへの縮小」の問題はピープルハブでも行われますが、それほど明白ではありません. これは IsZoomEnabled プロパティで変更できます。 http://www.windowsphonegeek.com/articles/WP7-ContextMenu-in-depth--Part1-key-concepts-and-APIを参照してください。

Microsoft の実装と比較すると、アニメーションも非常にぎくしゃくしていることに気付きました。

于 2012-04-11T16:31:54.370 に答える