XAML-Kolumne: WPF und Windows-Apps

XAML-Tipp: WPF – „ItemTemplate“: komplette Weite verwenden
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: ‚ItemTemplate‘ – komplette Weite verwenden“.

WPF: „ItemTemplate“ – komplette Weite verwenden

Ein toller Aspekt von XAML ist die automatische Ausrichtung der Steuerelemente. Etwas schwieriger wird es hingegen für ItemTemplates. Diese werden einmalig gerendert und können für unterschiedliche Inhaltssteuerelemente mit verschiedenen Größen zum Einsatz kommen. Somit hilft nur das Setzen von HorizontalAlignment=“Stretch“ oft nicht weiter.

Als Lösung verwendet man beim Inhaltssteuerelement zusätzlich die HorizontalContentAlignment Property. Sie kümmert sich darum, dass Inhalte beim Rendern automatisch die jeweilige Größe des Inhaltssteuerelements erhalten. In Listing 1 wird die komplette Lösung gezeigt und in Listing 2 wird veranschaulicht, wie die Lösung via Style automatisch für alle Inhaltssteuerelemente festgelegt werden kann.

Listing 1: „ItemTemplate“ soll die komplette Weite verwenden“

 
<Window.Resources>
  <DataTemplate x:Key="ItemTemplate">
    <StackPanel Background="Azure">
      <TextBlock Text="{Binding Property1}" />
      <CheckBox IsChecked="{Binding Property2}" />
    </StackPanel>
  </DataTemplate>
</Window.Resources>
<Grid DataContext="{Binding Source={StaticResource SampleDataSource}}">
  <ListBox
  Width="248"
  Height="150"
  HorizontalContentAlignment="Stretch"
  ItemTemplate="{DynamicResource ItemTemplate}"
  ItemsSource="{Binding Collection}" />
</Grid>

Listing 2: „HorizontalContentAlignment“ per Style automatisch festlegen“

 
<Style TargetType="ListBoxItem">
  <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
</Style>

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)

 

Unsere Redaktion empfiehlt:

Relevante Beiträge

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