2014-01-05 19 views
14

Ich habe ein Windows Phone/XAML Grid von 3 Spalten zusammen. Insbesondere möchte ich, dass die dritte Spalte auf der rechten Seite des Bildschirms ausgerichtet ist.Ausrichten Gitter Spalte nach rechts

<Grid Background="Transparent" Margin="0,3"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="*"/> 
      <ColumnDefinition Width="Auto"/> 
     </Grid.ColumnDefinitions> 

    <Image Grid.Column="0" x:Name="Marker" Width="60" Height="60" VerticalAlignment="Center" Stretch="Uniform" HorizontalAlignment="Center"/> 
    <TextBlock Grid.Column="1" x:Name="Name" TextAlignment="Left" VerticalAlignment="Center" Margin="20,0" /> 
    <Image Grid.Column="2" x:Name="Selected" Width="48" Height="48" VerticalAlignment="Center" Stretch="Uniform" HorizontalAlignment="Center"/> 
</Grid> 

Das Ergebnis ist stattdessen dies:

enter image description here

Wenn es so sein sollte:

enter image description here

+0

Gibt es kein '= Horizontal„Recht“'? –

+1

Ja, und es funktioniert nicht :( – TheUnexpected

+0

Ist dieses Grid ein Teil von 'ItemTemplate' von' ListBox', weil ich andere Elemente in Grid nicht sehen kann. –

Antwort

18

Wie Sie eine ItemTemplate von ListBox erwähnt haben, können Sie HorizontalContentAlignment auf Stretch setzen.

<ListBox> 
     <ListBox.ItemContainerStyle> 
      <Style TargetType="ListBoxItem"> 
       <Setter Property="HorizontalContentAlignment" Value="Stretch"/> 
      </Style> 
     </ListBox.ItemContainerStyle> 
    </ListBox> 
2

Versuchen mit diesem:

<Grid Background="Transparent" Margin="0,3"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 
    <StackPanel Orientation="Horizontal"> 
     <Image x:Name="Selected" Width="48" Height="48" VerticalAlignment="Center" Stretch="Uniform" HorizontalAlignment="Center"/> 
     <TextBlock x:Name="Name" TextAlignment="Left" VerticalAlignment="Center" Margin="20,0" /> 
    </StackPanel> 
    <Image Grid.Column="1" x:Name="Selected" Width="48" Height="48" VerticalAlignment="Center" Stretch="Uniform" HorizontalAlignment="Right"/> 
</Grid> 
1

Versuchen Sie HorizontalAlignment="Stretch" im Grid.

+0

Die Verwendung einer ListView anstelle einer ListBox kann das Leben für mehrspaltige Listen erträglicher machen. – RudolfJan

0

hatte ich gleiches Problem und es wurde festgelegt, nachdem die Entfernung Stackpanel

Verwandte Themen