C# WP8.1中的手势识别块文本框
我正在为Windows Universal app实现一个带有手势交互的控件。但我发现了一个问题,如果我为容器定义了手势设置,那么在此之后父C# WP8.1中的手势识别块文本框,c#,xaml,windows-phone-8,uigesturerecognizer,C#,Xaml,Windows Phone 8,Uigesturerecognizer,我正在为Windows Universal app实现一个带有手势交互的控件。但我发现了一个问题,如果我为容器定义了手势设置,那么在此之后父TextBox控件将无法单击 以下是一个简化的布局代码: <Page x:Class="App.MainPage"> <Grid x:Name="RootGrid" Background="Transparent"> <Grid.RowDefinitions> <Row
TextBox
控件将无法单击
以下是一个简化的布局代码:
<Page x:Class="App.MainPage">
<Grid x:Name="RootGrid" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBox Grid.Row="0" />
<Button Grid.Row="1" Content="Click" />
</Grid>
</Page>
Debuggig告诉我这种行为的主要原因是OnPointerPressed
handler。单击RootGrid
和TextBox
时调用此方法,但单击按钮时不调用此方法objectsender
始终是Windows.UI.Xaml.Controls.Grid
,因此我无法确定它是否是TextBox
最有趣的是,相同的代码可以在Windows应用程序中正常工作,但不能在Windows Phone 8.1应用程序中正常工作
您能给我一些建议吗?如何在不影响控件内部的情况下实现手势识别?我没有找到比为
文本框
控件添加指针压缩
事件处理程序更好的解决方案:
private void TextBox_OnPointerPressed(object sender, PointerRoutedEventArgs e)
{
e.Handled = true;
}
它防止为此.Container
调用OnPointerPressed
,并允许以典型方式使用TextBox
。这不是最好的解决方案,但对我来说也很有效
private void TextBox_OnPointerPressed(object sender, PointerRoutedEventArgs e)
{
e.Handled = true;
}