我尝试将一组控件显示为“重叠小部件”面板'在固定控制之上。我的第一个想法是使用ItemsControl
,其中ItemsControl.ItemsPanel
包含Canvas
元素。
示例:
<ItemsControl ItemsSource="{Binding Widgets}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Top" Value="{Binding Path=(widgets:IWidget.Top)}" />
...
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
...
这很好用,但对我来说一个很大的缺点是必须通过Canvas.Left
,Canvas.Top
等绝对设置定位,我希望在某些地方&#34;对接&#34 ; (例如TopLeft,TopCenter,TopRight等)有没有其他方法,甚至可能是内置方式来做到这一点?