Xaml 表单:当顶部有对象(如标签和其他图像)时捕捉点击按钮的最佳方式
在我的应用程序中,我有以下布局: 它是一个图形,ontop是一个标签,ontop是另一个图形(也有另一个标签)。现在我仍然希望人们能够点击按钮。这已经导致了标签的发布。如果你点击标签而不是后面的按钮,什么都不会发生。我通过简单地添加两个点击处理程序来解决这个问题:一个在按钮上,一个在标签上。这至少是一个解决办法。但现在我面临一个更大的问题: 你可以看到这些布局相互重叠。到目前为止,不可能单击按钮,因为每个按钮的顶部都钉有两个网格(一个包含按钮,一个包含通知) 只有在删除通知后,才能再次单击该按钮。但这个ofc是没有选择的。我怎样才能使按钮在后台是可点击的,即使有东西在上面 这是xaml:Xaml 表单:当顶部有对象(如标签和其他图像)时捕捉点击按钮的最佳方式,xaml,xamarin.forms,Xaml,Xamarin.forms,在我的应用程序中,我有以下布局: 它是一个图形,ontop是一个标签,ontop是另一个图形(也有另一个标签)。现在我仍然希望人们能够点击按钮。这已经导致了标签的发布。如果你点击标签而不是后面的按钮,什么都不会发生。我通过简单地添加两个点击处理程序来解决这个问题:一个在按钮上,一个在标签上。这至少是一个解决办法。但现在我面临一个更大的问题: 你可以看到这些布局相互重叠。到目前为止,不可能单击按钮,因为每个按钮的顶部都钉有两个网格(一个包含按钮,一个包含通知) 只有在删除通知后,才能再次单击该按钮
<!--Grid for Button-->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<ImageButton
Aspect="AspectFit"
Grid.Column="1"
x:Name="btn_mymatches_mainmenu"
Source="btn_emptydummy.png" BackgroundColor="#00000000"/>
<Label
Grid.Column="1"
FontFamily="arial"
TextColor="#272727"
Text="Meine Matches"
HorizontalOptions="Center"
VerticalOptions="Center"/>
</Grid>
<!--Top Level Grid for Notifybutton-->
<Grid Grid.Row="1" >
<Grid.RowDefinitions>
<RowDefinition Height="0.5*" />
<RowDefinition Height="*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="4.5*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image
Aspect="AspectFit"
Grid.Column="1"
Grid.Row="1"
Source="img_notify.png" />
<Label
x:Name="label_notify_nr"
Grid.Column="1"
Grid.Row="1"
FontSize="16"
FontFamily="arial"
TextColor="#ffff"
Text="1"
HorizontalOptions="Center"
VerticalOptions="Center"/>
</Grid>
谢谢:)因为两个按钮位于同一单元格中,所以通知按钮将覆盖网格的所有空间 在您的情况下,最好使用AbsoluteLayout
<StackLayout VerticalOptions="CenterAndExpand" HorizontalOptions="FillAndExpand">
<AbsoluteLayout AbsoluteLayout.LayoutBounds="1,1,1,.50" AbsoluteLayout.LayoutFlags="All" Margin="10,10,10,10">
<Frame Padding="0" Margin="20,20,20,20" BackgroundColor="Transparent" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="1,1,1,1">
<Grid Grid.Row="1" >
<Grid.RowDefinitions>
<RowDefinition Height="60" />
</Grid.RowDefinitions>
<Frame Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" BackgroundColor="White" Padding="0" CornerRadius="30">
<Button Text="11111" Clicked="Button_Clicked" BackgroundColor="LightBlue"/>
</Frame>
</Grid>
</Frame>
<Frame AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds=".8,-.2,50,50" Grid.Row="0" Grid.Column="2" BackgroundColor="White" Padding="0" CornerRadius="30">
<Button Text="1" Clicked="Button_Clicked_1" BackgroundColor="Red" TextColor="White"/>
</Frame>
</AbsoluteLayout>
</StackLayout>
是的,我明白这个问题,但问题是根据您的逻辑,“通知”按钮会根据您使用的手机而位于不同的位置,对吗?我希望它在同一点上-这是我通过使用网格中的百分比“*”实现的。你可以测试我的解决方案。