2014-01-16 115 views
0

我有一個列表視圖,其中將包含我輸入的註釋。我無法弄清楚如何讓列表視圖項目看起來如何我想要它。XAML元素對齊問題

下面是它應該如何看:

enter image description here

而這正是它目前的樣子:

enter image description here

我怎樣寫列表視圖項XAML使日期和時間顯示在每個列表視圖項目的最右上方,並且註釋的文本位於左側?

<ListView x:Name="list" ItemsSource="{Binding Note}" BorderBrush="{x:Null}" BorderThickness="0"> 
    <DataTemplate> 
     <ListViewItem> 
      <StackPanel Orientation="Horizontal"> 
            </StackPanel> 
     </ListViewItem> 
    </DataTemplate> 
</ListView> 

任何幫助都是非常感謝!

+0

爲了便於比較,我建議您添加屏幕當前的屏幕截圖。 –

+0

@TdBdBowles完成! – uSeRnAmEhAhAhAhAhA

回答

2

爲了讓屏幕看起來像你想要的那樣,你缺少一些必需的元素。

  • 您需要爲ListView定義ItemTemplate。你在這裏的正確軌道上,這是一個在XAML中聲明的DataTemplate,你只需要將它應用到ListView.ItemTemplate屬性。
  • 您需要將ListViewHorizontalContentAlignment設置爲Stretch(默認值爲Left,這意味着您的項目不會填充整個內容區域)。
  • 您需要在DataTemplate中使用DockPanel(或其他類似面板),以便將日期內容放置在右側,其餘內容位於左側。
  • 您需要禁用ListView上的水平滾動(ScrollViewer.HorizontalScrollBarVisbility)以使您的內容換行(否則它只會愉快地將它全部繪製在一行上)。

我已經包括了一個樣本ListView,應該讓你開始。

<ListView 
    ItemsSource="{Binding Items}" 
    HorizontalContentAlignment="Stretch" 
    ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <DockPanel> 
       <TextBlock 
        TextWrapping="Wrap" 
        Text="{Binding Date}" 
        Background="Magenta" 
        DockPanel.Dock="Right" /> 
       <TextBlock Text="{Binding Content}" Background="Lime" /> 
      </DockPanel> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
+0

謝謝@Todd我現在就放棄這一點。 – uSeRnAmEhAhAhAhAhA

+0

感謝@Todd,關於「禁用Horizo​​ntalScrollBarVisibility」,它仍然將其繪製在整行上。任何想法如何包裝'內容'文本? – uSeRnAmEhAhAhAhAhA

+0

對不起,我忘了TextWrapping。嘆。這是我在假期時發生在我的大腦上的事情。我忘記了簡單的事情! – uSeRnAmEhAhAhAhAhA