我想创建像this
这样的VariableSizedWrapGrid但是,我还希望项目可以拖动(CanReorderItems属性),根据this帖子,这是不支持的,因为缺少“某些”接口.. 我尝试了它,如果我使用VariableSizedWrapGrid,重新排序确实会停止工作。
有人能指出我缺少接口的正确方向吗?
答案 0 :(得分:1)
布鲁姆,
您几乎必须自己实施拖动事件。
这是一篇精彩的博客文章,详细说明了您需要做的事情:
http://www.renauddumont.be/en/2012/windows-8-csharp-xaml-drag-drop
但是,博客没有提到如何很好地完成DragOver逻辑。基本上,你必须检查你结束的项目,然后根据方向(向上/向下/向左/向右拖动)你必须调用相应的视觉状态来获得平滑的动画。
例如,如果拖动的项目位于其下方的项目上(您可以根据项目中的项目索引进行检查),那么您需要执行以下操作:
VisualStateManager.GoToState((Control)containerOfItemBelow, "BottomReorderHint", true);
顺便说一句,如果您使用的是GroupedDataSource,请拖动&掉落也会被打破。我发现通过嵌套Gridviews& amp;我可以轻松地绕过整个GroupedDataSource概念。 Listsviews。
HTH