叠加小部件面板

时间:2017-01-08 22:40:41

标签: c# .net wpf canvas grid

我尝试将一组控件显示为“重叠小部件”面板'在固定控制之上。我的第一个想法是使用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.LeftCanvas.Top等绝对设置定位,我希望在某些地方&#34;对接&#34 ; (例如TopLeft,TopCenter,TopRight等)有没有其他方法,甚至可能是内置方式来做到这一点?

0 个答案:

没有答案