我有一个项目控件,允许用户拖动和重新调整其中的项目。项目可能会被拖出可视区域,在这种情况下,我想显示相应的滚动条。
这是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 :(得分:0)
Canvas是唯一没有固有布局的面板元素 特点。 Canvas具有默认的Height和Width属性 零,除非它是自动调整大小的元素的子元素 它的子元素。画布的子元素永远不会调整大小,它们 只是位于他们指定的坐标。这提供了 灵活的固有尺寸限制或 不需要或想要对齐。对于你想要孩子的情况 要自动调整大小和对齐的内容,通常最好 使用网格元素。
这就是为什么酒吧永远不会出现的原因。