2012-04-02 19 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はバーを示すが、アイテムがビューの外へドラッグされると、バーが有効になっていないのです。 Canvas Class Remarksから

答えて

0

キャンバスには、固有のレイアウトを 特性を有していない唯一のパネル要素です。 Canvasは、 の子要素を自動的にサイズ設定する要素の子でない限り、 というデフォルトのHeightプロパティとWidthプロパティをゼロにします。 Canvasの子要素は決してリサイズされません。 は指定された座標に配置されます。これは、固有のサイジング制約または アラインメントが必要でない、または望まれない状況に対して、 の柔軟性を提供します。子供の コンテンツのサイズを自動的に変更して整列させる場合は、通常、 グリッド要素を使用することをお勧めします。

これは、バーが表示されない理由です。

+0

応答していただきありがとうございます。私はすでに必要に応じて表示する方法を既に考えています –

関連する問題