jookos
jookos

Reputation: 75

xaml / c# stackpanel with background rectangle

I have a list (ListBox) of items in XAML using a StackPanel- based element template. The layout is fine, but I would now like to have a rectangle as a background for each item - creating a box around each one.

I was thinking of using a Canvas somehow, but as each item's height varies (as well as the height of the items inside the StackPanel), I'm not sure how to do it (I'm new to C#/XAML). What would be the best composition for the template in this situation?

Upvotes: 1

Views: 327

Answers (2)

Chris W.
Chris W.

Reputation: 23280

You can just specify it in an ItemTemplate and it will do what you want, something like;

<ListBox.ItemTemplate>
  <DataTemplate>

    <Grid>
       <Border BorderBrush="Red" BorderThickness="2" Background="Blue"/>
       <!-- Insert the rest of your Item template stuff here -->
    </Grid>

  </DataTemplate>
</ListBox.ItemTemplate>

Upvotes: 3

dtm
dtm

Reputation: 792

ListBox is a type of ItemsControl, which exposes several properties to control the appearance of the items. In this case, have a look at ItemContainerStyle (in the case of ListBox, the item containers are instances of ListBoxItem). You could, for instance, set the Background property in an ItemsContainerStyle to some color.

Upvotes: 0

Related Questions