我有一个C#WinRT应用程序。我有一排缩略图。当用户按下并按住缩略图时,我想“弹出”一个网格,该网格充当缩略图所在位置的上下文菜单。除了将网格定位在目标缩略图上之外,我还能正常工作。在WinForms中,使用Top / Left属性这是微不足道的,但WinRT中似乎不存在这些属性或类似的东西。
我可以通过HoldRoutingEventArgs访问目标Image对象,并且我可以通过XAML访问Grid,因为它在开始时存在,但不透明度为0%。我甚至将属于目标Image对象的Rect结构保存到我的ViewModel中的Rect属性中,希望通过数据绑定来解决这个问题。我只是不知道如何将网格移动到所需的位置。我怎样才能做到这一点?
答案 0 :(得分:1)
一个例子:
.A----------------------------
| .B----- .C---- |
| | | | | |
| | | | | |
| | | | | |
| ------ ----- |
| |
| |
----------------------------
其中.A表示主机的边距,.B表示缩略图的边距,C也表示缩略图。
主机(A)内网格的边距与您选择的缩略图相同(这是基于您的网格也是主机容器的一部分)。否则,您需要添加两个边距来计算正确的边距。
A.TopMargin = 50,LeftMargin = 90 B.TopMargin = 5,leftMargin = 35 C.TopMargin = 5,LeftMargin = 95
代码:
BThum = YourSelectedThumbNailAtThatMoment; //either B or C
Grid.TopMargin = AHost.TopMargin + BThum.TopMargin;
Grid.LeftMargin = AHost.LeftMargin + BThum.LeftMargin;