2013-05-16 24 views
0

我有下面的xaml的代碼。我正在嘗試將圖像與textblock對齊。第一個textblock顯示正確,我只想image和第二個textblockdock到最右側。我如何正確對齊?邊界內的多個路線

<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" BorderThickness="0" Padding="16,2" 
     BorderBrush="Transparent" Background="{StaticResource AccentBrush}"> 
    <DockPanel LastChildFill="True">     
      <ItemsControl ItemsSource="{Binding Lists}"> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <TextBlock Margin="0,5" FontSize="24" FontFamily="Sageo UI Light" TextAlignment="Left" TextWrapping="NoWrap" 
          TextTrimming="WordEllipsis" Foreground="{StaticResource MainBrush}" HorizontalAlignment="Stretch" Text="{Binding Title}" /> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 
      <StackPanel Orientation="Horizontal" > 
      <Image HorizontalAlignment="Right" Source="/Images/image.png"/> 
      <TextBlock DockPanel.Dock="Right" Margin="16,0,0,0" Text="{Binding ElementName=TreeView, Path=SelectedItem.Name, StringFormat='Name: {0}'}" 
        FontFamily="Segoe UI Light" FontSize="14" TextAlignment="Right" TextWrapping="NoWrap" TextTrimming="WordEllipsis" 
        Foreground="{StaticResource MainBrush}" HorizontalAlignment="Stretch" VerticalAlignment="Center" />    
     </StackPanel>     
    </DockPanel> 
</Border> 

回答

1

一個StackPanel的內部尺寸在其Orientation的方向上無限制始終堆疊從頂部/左項。這兩個屬性的組合意味着您不能使用StackPanel來找到您要找的正確對齊方式。相反,您可以使用另一個DockPanel,或者將所有內容直接放在外部DockPanel。我無法從你的代碼中知道你想要正確的停靠物品的順序,但至少應該讓你開始:

<Border Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" BorderThickness="0" Padding="16,2" 
     BorderBrush="Transparent" Background="{StaticResource AccentBrush}"> 
    <DockPanel LastChildFill="False">     
      <ItemsControl ItemsSource="{Binding Lists}"> 
       <ItemsControl.ItemTemplate> 
        <DataTemplate> 
         <TextBlock Margin="0,5" FontSize="24" FontFamily="Sageo UI Light" TextAlignment="Left" TextWrapping="NoWrap" 
          TextTrimming="WordEllipsis" Foreground="{StaticResource MainBrush}" HorizontalAlignment="Stretch" Text="{Binding Title}" /> 
        </DataTemplate> 
       </ItemsControl.ItemTemplate> 
      </ItemsControl> 
      <DockPanel DockPanel.Dock="Right"> 
      <Image Source="/Images/image.png"/> 
      <TextBlock Margin="16,0,0,0" Text="{Binding ElementName=TreeView, Path=SelectedItem.Name, StringFormat='Name: {0}'}" 
        FontFamily="Segoe UI Light" FontSize="14" TextAlignment="Right" TextWrapping="NoWrap" TextTrimming="WordEllipsis" 
        Foreground="{StaticResource MainBrush}" HorizontalAlignment="Stretch" VerticalAlignment="Center" />    
     </DockPanel>     
    </DockPanel> 
</Border>