难以获得项目 - 扩大命中区域

时间:2016-05-05 21:56:51

标签: c# windows windows-phone-8.1

我有一个Image,我想从中获取它(实际上是包含它的网格,因为它更大)。但这不能正常工作,因为触摸屏幕触摸按钮时我必须非常精确,否则它将无法正常工作。

<Grid Grid.Column="0" Tapped="DrawerIcon_Tapped" HorizontalAlignment="Center" VerticalAlignment="Center">
            <Image Margin="5" x:Name="DrawerIcon"  Source="/Assets/but_drawer.png" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Center" VerticalAlignment="Center" >
                <Image.RenderTransform>
                    <CompositeTransform ScaleX="0.5" ScaleY="0.5"/>
                </Image.RenderTransform>
            </Image>
        </Grid>

当我点击时,有没有办法扩展被击中元素的区域?

2 个答案:

答案 0 :(得分:1)

CompositeTransform仅使图像变大,为了使命中区域更大,您必须执行以下操作:

  1. 正如您所做的那样,使用Image
  2. 围绕对象(Grid
  3. Tapped事件添加到Grid
  4. Margin的{​​{1}}将确定命中区域;因此,使这个更大将使命中区域更大(或使Image更大的任何东西。)
  5. 最后,最令人讨厌的是:Grid Background透明!
  6. 要修复您的代码,只需添加Grid,如果您愿意,也可以将保证金增加到10:

    Background="Transparent"

    希望这有帮助。

答案 1 :(得分:0)

我通过在我想要点击的对象(仅在根Grid下)的每个Grid之外创建一个透明的Rectangle并将Tapped事件附加到它来实现它。显然,在GridStackpanel下,会以某种方式影响Tapped事件。这不是一个真正的解决方案,只是一种解决方法。也许这是一个错误。