2014-11-20 46 views
0

我正在設計一個WPF中的UserControl來顯示多音軌音頻信號。最後,我將打開一個包含音頻軌道的文件,主窗口內容將被我的UserControl填充,這樣UserControl就會爲文件中的每個音頻軌道包含一個項目。每件物品都可以伸展以佔據控制器的整個寬度,並且設置其高度以使物品均勻分佈。垂直佈置ListView項目大小一致

對於具有4個項目的文件(灰色),這或多或少是所需的結果。需要注意的是每個項目佔用可用高度的四分之一,他們都具有相同的寬度:

enter image description here

目前,我有這樣的代碼(XAML):

<ListView 
    ItemsSource="{Binding Tracks}" 
    Width="{Binding ActualWidth, ElementName=UserControl}" 
    Height="{Binding ActualHeight, ElementName=UserControl}" 
    > 
    <ListView.ItemTemplate> 
     <DataTemplate DataType="{x:Type local:SoundTrack}"> 
      <Border BorderBrush="Black" BorderThickness="1"> 
       <local:TrackView/> 
      </Border> 
     </DataTemplate> 
    </ListView.ItemTemplate>   
</ListView> 

與軌跡視圖包含:

<Border BorderThickness="1" BorderBrush="Black"> 
    <Grid x:Name="LayoutRoot" Background="#FFFFDCF2"> 
     <Polyline Stretch="Fill" Points="{Binding Pontos}" Fill="#FFD60D0D"/> 
    </Grid> 
</Border> 

問題是:ListView中的每個ListViewItem都以不規則的比例呈現。一切都被限制在左邊的幾個像素,並且高度不分佈(相反,它似乎以絕對單位呈現,這是不希望的)。

我很樂意使用任何其他ItemsControl,但我寧願使用一個現成的,而不是子類ItemsControl來自己構建它。

回答

2

這會給你一個統一的網格作爲你的物品主人,所以他們應該都統一分配他們的高度。

 <ListView> 
      <ListView.ItemsPanel> 
       <ItemsPanelTemplate> 
        <UniformGrid Columns="1" IsItemsHost="True"/> 
       </ItemsPanelTemplate> 
      </ListView.ItemsPanel> 
     </ListView> 

編輯:也得上的ListView擺脫高度和寬度綁定,並設置水平/垂直對齊方式和內容比對,以伸展

+0

要去給它一個嘗試,現在,謝謝! – heltonbiker 2014-11-20 17:23:52