2012-04-11 27 views
0

Ich zeige einen einfachen Twitter-Feed in meiner App und ich habe eine Refresh-Methode im Kontextmenü implementiert. Problem ist, dass das Anzeigen des Kontextmenüs schlecht funktioniert (es ist nicht eine Frage der Menge der Elemente, passiert mit nur wenigen). Es scheint, dass ich extra lange tippen/halten muss und dann erscheint das Kontextmenü - nicht mit der glatten Animation, sondern ein bisschen mit einem Ruck. Idealerweise wäre es schön, wenn es mehr wie der Hub der Leute funktioniert, wo sofort ein Feedback vorhanden ist, das Sie auf das Element angetippt haben. Dann erscheint das Kontextmenü mit der weichen Animation.Schlechte Leistung Kontextmenü

Ein anderer Teil dieser, der mich verwirrt ist, wenn das Kontextmenü erscheint, der Rest des Bildschirms Art "schrumpft zum Hintergrund", um Aufmerksamkeit auf das ausgewählte Element zu lenken. Es scheint, dass dies etwas mit dem Perf-Problem zu tun haben würde. Schauen Sie sich wieder einmal das Zentrum der Menschen für ein optimales Verhalten in dieser Angelegenheit an.

Gibt es Tipps, wie Sie das besser umsetzen können?

hier ist mein 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> 

Antwort

1

Die „schrumpft auf den Hintergrund“ Problem ist auch in den Menschen Hub getan, es ist nur nicht so offensichtlich. Sie können dies mit der IsZoomEnabled-Eigenschaft ändern, siehe http://www.windowsphonegeek.com/articles/WP7-ContextMenu-in-depth--Part1-key-concepts-and-API.

Ich habe festgestellt, dass die Animation im Vergleich zu Microsoft-Implementierung auch ziemlich ruckelig ist.

+0

wow, die Einstellung IsZoomEnabled = false half wirklich der Perf. Vielen Dank! – earthling