gpt4 book ai didi

c# - PixelSense Surface 2.0 - 将 UserControl 拖放到 ScatterView 上,反之亦然

转载 作者:太空宇宙 更新时间:2023-11-03 13:51:50 25 4
gpt4 key购买 nike

之前我尝试从 LibraryContainer 中拖放一个对象在 ScatterView 上反之亦然,很简单的是 LibraryContainer , LibraryStackLibraryBar默认支持拖放事件。结合 DragDropScatterView.cs Surface 2.0 SDK 提供的 ShoppingCart 示例非常简单。

现在我希望能够拖放 UserControlScatterView 上4 反之亦然,即类似这样的内容:http://goo.gl/zZIdg .

根据我的研究,有一种方法可以做到这一点,可以在这里找到:http://msdn.microsoft.com/en-us/library/ff727736.aspx .但是,这里他们不使用 DragDropScatterView.cs , 它以不同的方式完成。你有两个 ObservableCollections (源和目标),ScatterViewItemsSurfaceListBox .

在这个例子中我不喜欢的一件事是 ScatterViewItems可以拖动的实际上没有缩放属性,因为当用户单击 ScatterViewItem 时, 它创建了一种视觉样式并隐藏了 ScatterViewItem当你放下它时,它会更新 ScatterViewItem 的坐标和方向并使其可见。我决定不走这条路,因为我想要一个正常的 ScatterViewItem行为。

我想做的基本事情是拥有,例如 Label , 在一边 ScatterView并能够拖动Label (创建一个视觉光标 - 已经完成)并将其放在 ScatterView 上, 创建一个 ScatterViewItem具有与原始 Label 相同的属性.我试着用 DragDropScatterView.cs 做这个但是当我使用 Label我的droppingCursor.Data (在 DragDropScatterView.cs 上)是 null我认为这是因为 draggedElement.DataContext (在 LabelView.xaml.cs 上)也是 null , 然而这不是 null当我有一个 SurfaceListBox .

我在这里提供了一个代码示例:http://sdrv.ms/VDuHq5 .在SurfaceWindow1.xamlTagVisualizationScatterView 的容器, LabelView.xaml`TagVisualization 中调用.

如果有人可以帮助我,我将不胜感激。

最佳答案

我设法解决了我的问题,这里是我如何解决的简要说明:

我搜索并找到了this .然后,我将此 SurfaceListBox 与这些拖放事件一起使用,并将其与 DragDropScatterView 类组合,因此每次创建新的 ScatterViewItem 时,我都会我的自定义对象有一个正常的 ScatterView 控件。使用此方法,您还必须创建一个可视光标,即当您从 SurfaceListBox 拖动项目时您将看到的内容。

让我和 Serge Calderara(来自 MSDN Surface 论坛)帮助我解决的事情是,我一直试图将这些拖放事件与 Label 相关联,或者一个 UserControl 甚至,但我看事情的方式是错误的。在大多数情况下,最好的解决方案是拥有一个容器,在该容器中放置所需的 UserControls 并且只将拖放事件与该容器相关联,而不是与每个单独的项目相关联.考虑到这一点,将它们组合起来相当容易,我创建了 UserControls 并使用 ItemTemplateSelector 填充了 SurfaceListBox(这是我的容器) > 并且我对 ScatterView 使用了相同的选择器(即从容器中接收项目)。在我的对象类中,我刚刚定义了一个变量来保存我将拥有哪种类型的 UserControl 并相应地返回 DataTemplate

有了这个,我创建了一个 SurfaceListBox,其中包含两个自定义 UserControl,我可以将它们拖放到 ScatterView 并返回。可以在此处找到具有 MVVM 模式的工作示例:http://sdrv.ms/10SjKaH .

我希望它能帮助到别人,它也帮助了我。如果您有任何问题或建议,请随时提出/告诉。

关于c# - PixelSense Surface 2.0 - 将 UserControl 拖放到 ScatterView 上,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13492598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com