Kolumne: WPF und Windows-Apps

XAML-Tipps: WPF – Verzögertes Rendern beim Scrollen
Keine Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „WPF: Verzögertes Rendern beim Scrollen“.

Die Inhaltssteuerelemente mit komplexen DataTemplates und zahlreichen Daten können ein flüssiges Scrollen verhindern. Das liegt daran, dass der Rendervorgang und die Threads enorm viel Arbeit bekommen und die CPU-Auslastung damit sehr hoch wird.

WPF: Flüssiges Scrollen – so funktioniert´s

Eine mögliche Lösung kann das Auslagern an die GPU mittels BitmapCache sein. Sind im DataTemplate allerdings interaktive Steuerelemente vorhanden, kann das unerwünschte Seiteneffekte hervorrufen. Eine Alternative bietet das Attached Property ScrollViewer.IsDeferredScrollingEnabled, das für ein verzögertes Rendern sorgt. So wird das Inhaltssteuerelement erst gerendert, wenn der Benutzer die Maustaste wieder loslässt. Listing 1 zeigt dessen Einsatz bei einer ListBox.

<ListBox ItemsSource="{Binding Products}" Width="300"
         ScrollViewer.IsDeferredScrollingEnabled="True">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <StackPanel Orientation="Horizontal">
        <Image Source="{Binding Image}" Height="100"/>
        <StackPanel Margin="10,0">
            <TextBlock Text="{Binding Name}" FontWeight="Bold" />
            <TextBlock Text="{Binding Description}"/>
            <TextBlock Text="{Binding Price}" FontStyle="Italic"/>
        </StackPanel>
      </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

BASTA! 2021

Neuerungen in .NET 6.0 – das eine .NET, sie alle zu beherrschen

mit Dr. Holger Schwichtenberg (DOTNET-DOKTOR)

C# Workshop: — was kommt Neues mit C# 10 und .NET 6?

mit Rainer Stropek (timecockpit.com)

Funktionaler Code mit C# 9

Oliver Sturm (DevExpress)

 

Aufmacherbild: Computer mouse isolated on the yellow background via Shutterstock / Urheberrecht: Garsya

Unsere Redaktion empfiehlt:

Relevante Beiträge

Abonnieren
Benachrichtige mich bei
guest
0 Comments
Inline Feedbacks
View all comments
X
- Gib Deinen Standort ein -
- or -