2014-02-11 40 views
1

我有一個項目列表(氣泡)項目的大小取決於重量(氣泡的直徑)。WPF中的自動調整包裹面板

我想在WrapPanel中添加氣泡。我希望包裝面板應該包裝並將其作爲自動調整大小項目。

全容量
Full Capacity

元素加入到全容量
Element Added to Full Capacity

的XAML

<ItemsControl VerticalAlignment="Center"> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapPanel Width="300" IsItemsHost="True" /> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.Items> 
     <wrapPanelDemo:CircleUserControl CircleHeight="30" /> 
     <wrapPanelDemo:CircleUserControl /> 
     <wrapPanelDemo:CircleUserControl CircleHeight="50" /> 
     <wrapPanelDemo:CircleUserControl /> 
     <wrapPanelDemo:CircleUserControl CircleHeight="100" /> 
     <wrapPanelDemo:CircleUserControl /> 
     <wrapPanelDemo:CircleUserControl CircleHeight="200" /> 
     <wrapPanelDemo:CircleUserControl /> 
     <wrapPanelDemo:CircleUserControl /> 
     <wrapPanelDemo:CircleUserControl CircleHeight="250" /> 
     <wrapPanelDemo:CircleUserControl CircleHeight="100" /> 

    </ItemsControl.Items> 
</ItemsControl> 

如果有更多數量的面板(讓我們將它們命名爲包含氣泡的P1和P2),那麼儘管P1和P2具有不同的氣泡,但氣泡(P1中的重量250)看起來應該與氣泡(P2中的重量250)相同。 (所有面板中所有氣泡的重量與尺寸的比例應該相同 )

+0

嗯..所以你要內面板項目您所需要的結果調整大小,而不是它自己的面板。目前還沒有想法。我也看不出你到目前爲止做了什麼努力? – har07

回答

0

你真正的意思是什麼自動尺寸?如果你的意思是wrappanel應該擴展它的高度,我認爲這已經構建在wrappanel的行爲中。什麼限制wrappanel的高度是它的容器的高度。試着把這個包裝盒放在scrollviewer裏面,然後你會隨着內容的不斷擴展。隨着wrappanel的高度超出可用空間,滾動條會出現。測試例如:

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <ScrollViewer> 
     <ItemsControl VerticalAlignment="Center"> 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <WrapPanel Width="100" IsItemsHost="True" /> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
      <ItemsControl.Items> 
       <Ellipse Height="30" Width="30" Fill="Green" /> 
       <Ellipse Height="50" Width="50" Fill="Green" /> 
       <Ellipse Height="100" Width="100" Fill="Green" /> 
       <Ellipse Height="100" Width="100" Fill="Green" /> 
      </ItemsControl.Items> 
     </ItemsControl> 
    </ScrollViewer> 
</Grid> 

結果: enter image description here

+0

自動調整大小意味着......面板將調整其內部的所有項目以適應新添加的項目....並且面板中的所有項目將始終可見(滾動條不應該出現,因爲每個項目都應該可見) – Ankesh

0

我認爲,如果你把你的畫布面板一個StackPanel裏面,那麼你應該有