1

我正在尝试测试平板电脑的触摸屏(Surface),因此我正在开发一个能够检测点击事件并告诉其坐标的应用程序。

Grid我制作了一个点击事件处理程序来主控MainPage并将其写入MainPage.xaml.cs

outputText.Text = e.GetPosition(this).X.ToString() + "\t";
outputText.Text += e.GetPosition(this).Y.ToString();

outputText只是一个TextBlock输出坐标。

此代码应基于 给出其坐标Grid,但仅当我在TextBlock区域内触摸它时才会给出坐标。

这个事件处理程序是如何Tapped工作的,它只检测内部TextBlock而不是整个屏幕(应用程序以全屏模式运行)的点击事件?

我的MainPage.xaml样子是这样的:

<Grid Tapped="Grid_Tapped" PointerPressed="Grid_PointerPressed">
    <TextBlock x:Name="outputText" HorizontalAlignment="Left" Height="62" Margin="806,374,0,0" Text="TextBlock" TextWrapping="Wrap" VerticalAlignment="Top" Width="182"/>
</Grid>
4

1 回答 1

1

问题是Grid.Backgroundis null,所以点击事件会通过它。唯一Grid具有任何实际“表面”的地方是TextBlock,这正是您所看到的。

您必须将背景设置为任何其他值,例如Transparent. 这样它将正确处理事件。

于 2018-07-16T07:35:39.317 回答