【问题标题】:How to bind a canvas to a list of rectangles如何将画布绑定到矩形列表
【发布时间】:2011-08-06 00:52:09
【问题描述】:

使用 WPF 我有一个矩形列表(其中可以有未定义数量的矩形)和一个画布。我想使用数据绑定将这些矩形放置在画布上。

我尝试过使用项目控件,并且似乎将每个项目堆叠在下一个项目的顶部,就像垂直堆栈面板一样。

我所有的矩形的坐标都是 0,0,但它们都在画布下方相互重叠。

使用项目控件的任何替代方法?

【问题讨论】:

    标签: c# .net wpf xaml data-binding


    【解决方案1】:

    您需要考虑绑定时物品的包装:

    <ItemsControl ItemsSource="{Binding Data}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Canvas />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemContainerStyle>
            <Style>
                <Setter Property="Canvas.Left" Value="{Binding X}"/>
                <Setter Property="Canvas.Top" Value="{Binding Y}"/>
            </Style>
        </ItemsControl.ItemContainerStyle>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <!-- Item Template -->
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      相关资源
      最近更新 更多