0

我有一个Grid可以容纳四个图像的。图像本身大小相同,但图像的视觉部分可以/将不同(因此部分图像将是透明的)。

我希望图像的透明部分溢出到网格的其他单元格中。

我也在网格上进行了测试。一个用于指针悬停,一个用于按下。

如何在网格中获取这些图像并保持溢出以及命中测试?

到目前为止,我的解决方案是有 9 列,然后:

  • 第一张图像采用第 0 到第 2 列,
  • 第二张图像需要 2 到 4,
  • 第三张图片4到6,
  • 第 4 张图像需要 6 到 8 张。

这样图像就会溢出。但问题是,当添加每个后续图像时,它会位于共享列的顶部,因此任何鼠标悬停都会随之而来。

在 WPF 中,您可以派生自Image重写HitTestCore;使用 Metro,您无法做到这一点。我的计划是只测试非透明像素。

如果我可以对命中测试进行排序,我就可以让这个方法发挥作用。虽然如果有另一个/更好的解决方案,我全神贯注?

4

2 回答 2

0

我采用的解决方案是将包含所有图像的网格与另一个包含我想要大小的矩形的网格重叠。然后我可以使用矩形作为命中测试,而不是底层图像。

于 2012-10-08T19:45:47.643 回答
0

根据Metro Style Apps 的Microsoft 文档

无论透明内容如何,​​Image 和 MediaElement 控件都可以在其定义的矩形上进行命中测试。

因此,我认为 Metro 无法以这种方式实现。请注意,我之前的评论(Canvas)似乎也不起作用(关于下面的链接)。

于 2012-09-17T14:55:06.427 回答