嗨,我们如何实现下拉按钮在xamarin形式在按钮点击或标签点击

rdlzhqv9  于 2023-01-15  发布在  其他
关注(0)|答案(1)|浏览(241)

例如,如果我们在移动的屏幕上有一个按钮,当我们点击该按钮时,它将显示下拉菜单,在该下拉菜单中,将显示可点击的按钮。

<Grid Grid.Row="1">
                        <Button Grid.Column="0" ClassId="Dropdowns" Text="Aktionen" Style="{DynamicResource topActBtnStyle}" FontSize="22" HorizontalOptions="StartAndExpand" xct:SideMenuView.MenuAppearanceType="SlideInOut"/>
                        <RelativeLayout IsVisible="True" Grid.Column="0" ClassId="Dropdowns">
                            <Button Text="Reset" Style="{DynamicResource topActBtnStyle}" FontSize="22" HorizontalOptions="StartAndExpand"/>
                            <Button Text="Exit" Style="{DynamicResource topActBtnStyle}" FontSize="22" HorizontalOptions="StartAndExpand"/>
                            <Button Text="Logout" Style="{DynamicResource topActBtnStyle}" FontSize="22" HorizontalOptions="StartAndExpand"/>
                        </RelativeLayout>
                        <Button Grid.Column="1" Text="{Binding UserNameText}" Style="{DynamicResource topActBtnStyle}" HorizontalOptions="EndAndExpand"/>
                    </Grid>

但所有按钮都显示在行中的同一位置。column=“0”我希望这些按钮在下拉列表中(重置、退出、注销)

fv2wmkja

fv2wmkja1#

但所有按钮都显示在row. column ="0"中的同一位置
这是因为您使用了RelativeLayout,但没有为它们设置位置。
但是您也可以使用StackLayout来实现这一点。
请参考以下代码:

<StackLayout> 
        <Grid  RowSpacing="0">
            <Grid.RowDefinitions>
                <RowDefinition Height="60" />
                <RowDefinition Height="*" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>

            <Button Grid.Column="0" ClassId="Dropdowns" Text="Aktionen"  Clicked="Button_Clicked" FontSize="22" HorizontalOptions="StartAndExpand" xct:SideMenuView.MenuAppearanceType="SlideInOut"/>

            <StackLayout x:Name="mStackLayout"  Orientation="Vertical"  IsVisible="false" Grid.Column="0"  Grid.Row="1" ClassId="Dropdowns" >

                <Button Text="Reset"  FontSize="22" HorizontalOptions="StartAndExpand"/>

                <Button Text="Exit"  FontSize="22" HorizontalOptions="StartAndExpand"/>

                <Button Text="Logout"  FontSize="22" HorizontalOptions="StartAndExpand"/>

            </StackLayout>

            <Button Grid.Column="1" Text="UserNameText"  HorizontalOptions="EndAndExpand"/>

        </Grid>
  </StackLayout>

和函数Button_Clicked

private void Button_Clicked(object sender, EventArgs e) 
    {
        mStackLayout.IsVisible = !mStackLayout.IsVisible; 
    }

注:
这个功能我是用StackLayout来实现的,当然你也可以用RelativeLayout来实现,但是对于你的需求,我觉得StackLayout是一个比较简单的方法,关于RelativeLayout的更多信息,你可以查看RelativeLayout

相关问题