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>
C#-9.0-Spickzettel

Kostenlos: Neue Sprachfunktionen in C# 9.0 auf einen Blick

Jetzt herunterladen und noch schneller und effektiver programmieren!

 

Unsere Redaktion empfiehlt:

Relevante Beiträge

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