Xamarin:是否可以单击 BoxView 中的项目并“转到”下一页?

问题描述

我的应用中有一个侧边菜单,当您向左滑动时会显示菜单。侧边菜单基本上是一个 BoxView,其中包含一系列菜单项,例如 设置登录

我的问题是:是否可以单击 BoxView 中的特定项目?例如设置。

我尝试通过在 MainPage.cs 中创建方法使项目可点击。没有真正起作用。

这里有一些代码以备不时之需。

MainPage.cs:

       private List<Menu> GetMenus()
            {
                return new List<Menu>
                {
                    new Menu { Title = "Home",Type = ButtonType.Home,Icon = "Icon.Images.icon.png"},new Menu { Title = "Settings",Type = ButtonType.Settings,new Menu { Title = "Rotate",Type = ButtonType.Rotate,};
    
            }


 private void OpenSwipe(object sender,EventArgs e)
        {

        }

        private void CloseSwipe(object sender,EventArgs e)
        {

        }

我现在得到的结果是,每次单击菜单项时,侧边菜单都会再次关闭

MainPage.xaml

  <Grid HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
        <!--<Image Aspect="Fill" Source="icon.png" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"></Image>-->
        <BoxView BackgroundColor="DarkSlateGray" Opacity="0.9">


        </BoxView>
        <swipeview x:Name="Mainswipeview" BackgroundColor="Transparent">
            <swipeview.LeftItems>
                <SwipeItems>
                    <SwipeItemView>
                        <Grid>
                            <StackLayout Spacing="20" Padding="35" WidthRequest="100" BindableLayout.ItemsSource="{Binding MyMenu}"
                                         VerticalOptions="CenterandExpand">
                                <BindableLayout.ItemTemplate>
                                    <DataTemplate>
                                        <StackLayout Orientation="Horizontal">
                                            <StackLayout.GestureRecognizers>
                                                <TapGestureRecognizer Tapped="CloseSwipe">
                                                </TapGestureRecognizer>
                                            </StackLayout.GestureRecognizers>
                                            <pancakeView:PancakeView  HeightRequest="30"
                                                                     WidthRequest="30" CornerRadius="15" VerticalOptions="Center"
                                                                     HorizontalOptions="Start">
                                                <ImageButton Source="{Binding icon.png}" HeightRequest="15" WidthRequest="15" VerticalOptions="Center"
                                                       HorizontalOptions="Center"></ImageButton>
                                            </pancakeView:PancakeView>
                                            <Label Text="{Binding Title}" TextColor="Black" FontSize="15" FontAttributes="Bold" 
                                                   HorizontalOptions="Start" VerticalOptions="Center"></Label>
                                        </StackLayout>
                                    </DataTemplate>
                                </BindableLayout.ItemTemplate>
                            </StackLayout>

                        </Grid>
                    </SwipeItemView>
                </SwipeItems>
            </swipeview.LeftItems>
            <Grid x:Name="swipeContent">
                <pancakeView:PancakeView x:Name="WebView1"  Background="Gray">
                    <Grid AbsoluteLayout.LayoutBounds="1,1,1" AbsoluteLayout.LayoutFlags="All">
                        <Grid>
                            <Grid.RowDeFinitions>
                                <RowDeFinition Height="Auto"/>
                                <RowDeFinition Height="Auto"/>
                                <RowDeFinition Height="*"/>
                                <RowDeFinition Height="*"/>
                            </Grid.RowDeFinitions>
                            <Grid Padding="30">
                                <Image Source="{iconWareApp:ImageResource iconWareApp.Images.icon.png}" HeightRequest="18" HorizontalOptions="Start">
                                    <Image.GestureRecognizers>
                                        <TapGestureRecognizer Tapped="OpenSwipe" ></TapGestureRecognizer>
                                    </Image.GestureRecognizers>
                                </Image>

                                <ImageButton Source="{iconWareApp:ImageResource iconWareApp.Images.icon.png}" HeightRequest="36" HorizontalOptions="End" ></ImageButton>
                            </Grid>

                            <Grid AbsoluteLayout.LayoutBounds="1,1" AbsoluteLayout.LayoutFlags="All">
                                <views:HybridWebView x:Name="WebView" />

                            </Grid>
                            <views:MenuView HorizontalOptions="Start" VerticalOptions="Start"></views:MenuView>
                        </Grid>
                    </Grid>
                </pancakeView:PancakeView>
            </Grid>
        </swipeview>
    </Grid>

更新:

我的意思是我有一个侧边菜单,其中有 3 个菜单项,在这种情况下,我想进入设置。 (我使用 BoxVIEW 更改侧菜单的颜色)

enter image description here

请看图。这些项目(主页、设置、主页)假设将我带到其他页面,但他们没有这样做。那是我的问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)