Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Xaml嵌套事件不起作用_C#_Wpf_Xaml - Fatal编程技术网

C# Xaml嵌套事件不起作用

C# Xaml嵌套事件不起作用,c#,wpf,xaml,C#,Wpf,Xaml,我有一个带有点击事件的网格,在这个网格中还有三个带有点击事件的按钮。第一个(中间的)按钮正在工作,但其他按钮不工作。如果单击它,将触发网格事件而不是按钮事件。我不知道为什么 <Page .... <Grid Background="{ThemeResource BackgroundBrush}" Tapped="Grid_Tapped"> <Grid.RowDefinitions> <RowDefinition Height="130

我有一个带有点击事件的网格,在这个网格中还有三个带有点击事件的按钮。第一个(中间的)按钮正在工作,但其他按钮不工作。如果单击它,将触发网格事件而不是按钮事件。我不知道为什么

<Page
....
<Grid Background="{ThemeResource BackgroundBrush}"  Tapped="Grid_Tapped">
    <Grid.RowDefinitions>
        <RowDefinition Height="130"/>
        <RowDefinition Height="80"/>
        <RowDefinition Height="10"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="90"/>
    </Grid.RowDefinitions>

    <Border Grid.Row="2" Background="#BEBEBE"/>

    <Border Grid.Row="3" Background="#BEBEBE"/>
    ....
    <Button x:Name="btnGoToContent" Content="" HorizontalAlignment="Center" VerticalAlignment="Bottom" Grid.Row="3" Margin="0,0,0,20" Height="80" Width="320" Click="btnGoToContent_Click" Style="{StaticResource ButtonStyle2}" Opacity="0.7"/>
    <Button x:Name="btnDiashowBack" Content="" HorizontalAlignment="Left" VerticalAlignment="Center" Grid.Row="3" Margin="0,0,0,0" Height="220" Width="220" Click="btnDiashowBack_Click" Style="{StaticResource BackButtonStyle}" Opacity="0.7"/>
    <Button x:Name="btnDiashowNext" Content="" HorizontalAlignment="Right" VerticalAlignment="Center" Grid.Row="3" Margin="0,0,0,0" Height="220" Width="220" Click="btnDiashowNext_Click" Style="{StaticResource BackButtonMirror}" Opacity="0.7"/>

</Grid>

我不知道为什么它不工作。但我已经解决了这个问题。跳过网格事件处理程序中的事件

   private async void Grid_Tapped(object sender, TappedRoutedEventArgs e) {
        if (e.OriginalSource.GetType() == typeof(TextBlock)) 
        {
            return;
        }
        .......
   }

您在父级上有一个点击事件。尝试在按钮上添加ClickMode=“Press”。无法解决此问题。但是按钮事件被触发,在这之后点击的事件OK我想可能是这样的(没有测试),所以你只需要分离这些命中区域。将点击的事件移动到按钮后面出现的边框之一,而不是将其应用于所有内容的父对象。