2017-04-08 59 views
-1

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

  1. 创建一个对象,并将其添加到列表框中
  2. 您可以通过rightclicking它在列表框修改对象,还可以复制它
  3. 放置对象的画布区域的阻力,并从列表框中
  4. 您可以通过拖放它在该地区自由移动的对象拖放

我的问题是我应该如何处理,如果一个项目已经放置在该区域? 我已经检查,但只针对

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

随着我检查,如果左键被释放了一个多使用面积,但如果我的对象之前释放鼠标也会重叠另一个

我会要定义网格处置在一个秩序井然的方式感谢的对象事先

回答

0

trye是这样的:

<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> 

这将自行组织您的控件,或其他任何您在其中包含的内容