2009-06-24 3 views
0

In einer horizontalen Listbox, wie ordne ich Elemente an der Spitze?In einer horizontalen Listbox, wie ordne ich Elemente an der Spitze?

Ich habe keine Ideen, wo eine VerticalAlignment = "Top" zu halten.

<Window.Resources> 
    <DataTemplate DataType="{x:Type l:MyType}"> 
     <Grid VerticalAlignment="Top"> 
      <TextBlock VerticalAlignment="Top" Text="{Binding MyValue}" Background="Yellow"/> 
     </Grid> 
    </DataTemplate>  
</Window.Resources> 

<Grid> 
    <ListBox Name="listBox" ItemsSource="{Binding}" VerticalAlignment="Top" > 

     <ListBox.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel Orientation="Horizontal" VerticalAlignment="Top"/> 
      </ItemsPanelTemplate> 
     </ListBox.ItemsPanel> 

     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <ListBoxItem Content="{Binding}" VerticalAlignment="Top" VerticalContentAlignment="Top"/> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
</Grid> 

using System.Windows; 

namespace WpfApplication5 { 
    public partial class Window1 :Window { 
     public Window1() { 
      InitializeComponent(); 
      this.listBox.ItemsSource = new MyType[] { 
       new MyType{ MyValue = "Tall\nItem" }, 
       new MyType{ MyValue = "I want this aligned to the top" } }; 
     } 
    } 

    public class MyType { 
     public string MyValue { get; set; } 
    } 
} 

Antwort

2

Sie müssen die Vertical auf das Listenfeld setzen, alle anderen Ausrichtungen du da drin haben können auch entfernt werden, sobald die festgelegt ist.

.... 
<ListBox Name="listBox" ItemsSource="{Binding}" VerticalContentAlignment="Top" > 
.... 

Die Standardeinstellung für die VerticalContentAlightment auf Ihrer List-Box ist ‚Center‘, so, obwohl Sie die Vertical wurde an anderer Stelle Einstellung wurden nur an die Spitze der ListBoxItems Ausrichtung, die nach wie vor statt in der streched oder platziert zentriert wurden die Spitze. Wenn Sie VerticalContentAlignment auf Stretch festlegen, werden die anderen VerticalAlignment = "Top" -Deklarationen funktionieren.

+0

Arrrrrg, so einfach. Danke. – jyoung

Verwandte Themen