为什么我的单选按钮在XAML中使用MAUI不能在Android上点击?

ddhy6vgd  于 2023-11-14  发布在  Android
关注(0)|答案(1)|浏览(143)

我有一个页面,需要用户在两个选项之间进行选择-我使用单选按钮,但对于格式,我需要制作一个自定义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机器上查看时,它工作正常-我可以点击我的单选按钮,他们选择,一切正常。但当我在Android上尝试时,突然单选按钮无法点击-他们显示和显示我想要的,但当我点击它们时什么也没有发生。
我试过在谷歌上搜索类似的情况,但似乎找不到任何其他的例子,一个按钮的功能停止时,转到Android。

iecba09b

iecba09b1#

这就是Frame的问题所在。
Frame类存在于Xamarin.Forms中,并且存在于.NET MAUI中,用于将其应用从Xamarin.Forms迁移到.NET MAUI的用户。如果您正在构建新的.NET MAUI应用,则建议使用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>

字符串
希望有帮助!

相关问题