Wpf放置对象

时间:2017-04-08 08:27:00

标签: wpf vb.net

我试图创建一个允许我创建对象并将它们放在画布区域的应用程序。我的应用程序的实际行为是:

  1. 创建对象并将其添加到列表框
  2. 您可以通过在列表框上右键单击对象来修改对象,并将其复制
  3. 将对象放置在画布区域中,将其从列表框中拖放
  4. 您可以通过拖放来自由移动区域中的对象
  5. 我的问题是,如果某个项目已放置在该区域,我该如何处理? 我已经检查过了,但仅限于

    Private Sub MyCanvas_MouseUp(sender As Object, e As MouseButtonEventArgs)
        Dim Position As Point = e.GetPosition(MyCanvas)
    End Sub
    

    用i检查左侧按钮是否在使用过的区域上释放,但是如果我在对象与另一个区域重叠之前释放鼠标

    此外,我想定义一个网格,以提前感谢

    以有序的方式处理对象

1 个答案:

答案 0 :(得分:0)

尝试类似这样的事情:

<Canvas     >
<ScrollViewer   HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"   >
    <ItemsControl ItemsSource="{Binding Tasks, UpdateSourceTrigger=PropertyChanged}"    >
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <WrapPanel Orientation="Horizontal"  AllowDrop="True" >

                </WrapPanel>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>

        <ItemsControl.ItemTemplate>
            <DataTemplate>

                <yourControls/>

            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</ScrollViewer>
</Canvas>

这会自动整理您的控件或其他任何内容