提问人:nawomack 提问时间:10/27/2023 更新时间:10/30/2023 访问量:54
为什么我在使用 MAUI 的 XAML 中的单选按钮在 android 上不可单击?
Why is my radio button in XAML using MAUI not clickable on android?
问:
我有一个页面,要求用户在两个选项之间进行选择 - 我为它使用单选按钮,但对于格式,我需要制作一个自定义 ControlTemplate,以便该按钮看起来像我们所有的其他按钮。我使用的自定义模板如下:
<ContentPage.Resources>
<ControlTemplate x:Key="FrameRadioTemplate">
<Frame Padding="0" BorderColor="#006A97" CornerRadius="1"
VerticalOptions="CenterAndExpand"
HeightRequest="40" WidthRequest="80" HorizontalOptions="Start">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CheckedStates">
<VisualState x:Name="Checked">
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="#008000"/>
</VisualState.Setters>
</VisualState>
<VisualState x:Name="Unchecked">
<VisualState.Setters>
<Setter Property="BackgroundColor" Value="#ffffff"/>
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid WidthRequest="70">
<ContentPresenter/>
</Grid>
</Frame>
</ControlTemplate>
</ContentPage.Resources>
在 Visual Studio 的 Windows Machine 中查看此内容时,它工作正常 - 我可以单击我的单选按钮,它们选择,一切正常。但是当我在Android上尝试时,突然间单选按钮无法点击 - 它们显示并显示我想要的方式,但是当我点击它们时什么也没发生。
我尝试过在谷歌上搜索类似的情况,但似乎找不到任何其他按钮功能在转到 Android 时停止的例子。不确定如何解决这个问题
答:
0赞
Liqun Shen-MSFT
10/30/2023
#1
这就是 Frame 的问题所在。
Frame 类存在于 Xamarin.Forms 中,并且存在于 .NET MAUI 中,供将其应用从 Xamarin.Forms 迁移到 .NET MAUI 的用户使用。如果要生成新的 .NET MAUI 应用,建议改用 Border。
我只是将 Frame 更改为 Border,它在我这边运行良好,
<Border Padding="0" Stroke="#006A97"
VerticalOptions="CenterAndExpand"
HeightRequest="40" WidthRequest="80" HorizontalOptions="Start">
<Border.StrokeShape>
<RoundRectangle CornerRadius="1"/>
</Border.StrokeShape>
<VisualStateManager.VisualStateGroups>
...
</VisualStateManager.VisualStateGroups>
<Grid WidthRequest="70">
<ContentPresenter/>
</Grid>
</Border>
希望对您有所帮助!
评论
IsEnabled="False"