2012-04-02 132 views
0

我有一個項目控件,它允許用戶拖動和重新調整其中的項目。項目可能會被拖出可視區域,在這種情況下,我想顯示相應的滾動條。自動滾動面板

這裏的XAML

的部分
<ControlTemplate x:Key="ItemsControlTemplate" TargetType ="ItemsControl"> 
    <ScrollViewer HorizontalScrollBarVisibility="Auto"> 
     <ItemsPresenter /> 
    </ScrollViewer> 
</ControlTemplate> 

<ItemsControl ItemsSource="{Binding Path=Models}"            
       Margin="10,10,10,10" 
       Grid.Row="1" 
       VerticalContentAlignment="Stretch" 
       HorizontalContentAlignment="Stretch" 
       Template="{StaticResource ItemsControlTemplate}">     
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate>        
      <Canvas ClipToBounds="True" 
        SnapsToDevicePixels="True"/>            
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <ContentControl Height="400" Width="600" 
          Canvas.Left="50" Canvas.Top="150" 
          Template="{StaticResource DesignerItemTemplate}" 
          Margin="10,10,10,10"> 
       <Views:ChartView /> 
      </ContentControl> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

的XAML顯示了吧,但是當一個項目拖出視杆未啓用。

回答

0

Canvas Class Remarks

Canvas是不具有固有的佈局 特性的唯一面板元件。畫布的默認高度和寬度屬性爲 零,除非它是元素的子元素,它自動將其子元素的大小設置爲 。畫布的子元素不會調整大小,它們只會在其指定的座標上定位。這提供了 靈活性的情況下固有的大小限制或 對齊不需要或想要的。對於您希望子內容 自動調整大小和對齊的情況,通常最好使用Grid元素 。

這就是爲什麼酒吧從不顯示。

+0

感謝您的回覆。我已經計算出如何在需要時顯示它們 – 2012-04-18 14:40:44