我正在使用如下Xamarin Forms创建一个圆形菜单。
强调色是我的网格。然后我翻译并整理按钮。
我的问题是单击按钮没有抬起。我还尝试了我的堆栈面板的手势识别器。结果相同。
部分代码如下:
<Grid BackgroundColor="Accent" Margin="0,0,0,10" VerticalOptions="End" HorizontalOptions="Center">
<StackLayout x:Name="cat"
>
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Tapped="catBtn_Clicked"/>
</StackLayout.GestureRecognizers>
<Button Clicked="catBtn_Clicked" TranslationX="-109" TranslationY="-102" WidthRequest="60"
HeightRequest="60"
FontSize="35"
CornerRadius="30" HorizontalOptions="Center"
BackgroundColor="{StaticResource RedColor}"
TextColor="White"
Text="{ x:Static local:GrialIconsFont.Calendar }"
FontFamily="{ StaticResource IconsFontFamily }">
</Button>
<Label Text="{extensions:Translate Hello}" HorizontalOptions="Center"/>
</StackLayout>
请确保您的按钮位于superView的边界内,如果将按钮放置在superView的范围之外,则该按钮将不可点击。
您使用TranslationX="-109"
,并且TranslationY="-102"
将使按钮超出StackLayout的范围,因此它不会响应click事件。您可以将backgroundColor添加到stacklayout中以查看其边界。
我建议您将这些按钮或标签直接添加到Grid并使用absolute-layout,relative-layout或其他布局来固定其位置。
[Github中也有一些示例可以参考,例如CircleButtonMenu
,Xamarin.Forms-RadialMenu