什么是Xaml中的分段控制?

时间:2017-01-31 05:23:21

标签: xaml xamarin xamarin.ios xamarin.android xamarin.forms

我想在点击片段控件的单个xaml页面之间切换多个页面。 我想让页面上半部分的页面与段控制相对应,并且在此控件下方具有简单的布局,用于替换或切换位置变化以下的其他页面,但上部仍然是下一页切换。

所以,我想在xamarin.forms中使用xaml中的段控件来编辑切换页面。

3 个答案:

答案 0 :(得分:2)

有一个nuget包FreshEssentials。它具有分段控制按钮的跨平台实现。找到这个Github存储库以了解实现。

希望这有帮助!

答案 1 :(得分:2)

enter image description here

参考下面的链接,使用XAML代码和Cs代码实现自定义段控制 https://github.com/sam-ss/Custom-Segmented-Control-Xamarin-Forms

希望这有助于你!

答案 2 :(得分:0)

您可以从nuget安装此库“ Plugin.Segmented.Control” 来自本教程https://www.c-sharpcorner.com/article/segment-control-in-xamarin-forms/

和您的xaml:

avd.ini.encoding=UTF-8
path=D:\Android\.android\avd\Pixel_2_API_29.avd
path.rel=avd\Pixel_2_API_29.avd
target=android-29

将此代码放入您的viewModel

<?xml version="1.0" encoding="utf-8"?>  
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:control="clr-namespace:Plugin.Segmented.Control;assembly=Plugin.Segmented" xmlns:iOSForms="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core" iOSForms:Page.UseSafeArea="true" xmlns:local="clr-namespace:XFSegmentControlDemo" x:Class="XFSegmentControlDemo.Views.HomePage">  
    <StackLayout VerticalOptions="FillAndExpand" Padding="30" Spacing="20">  
        <Label Text="Segmented Control" FontSize="30" TextColor="White" HorizontalOptions="CenterAndExpand" />  
        <control:SegmentedControl x:Name="SegmentedControl" SelectedSegment="{Binding SegmentSelection}" TintColor="White" SelectedTextColor="BlueViolet" DisabledColor="Gray" Margin="8,8,8,8">  
            <control:SegmentedControl.Children>  
                <control:SegmentedControlOption Text="Item 1" />  
                <control:SegmentedControlOption Text="Item 2" />
            </control:SegmentedControl.Children>  
        </control:SegmentedControl>  
        <Label Text="{Binding SelectedSegment}" FontSize="40" TextColor="White" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" />  
    </StackLayout>  
</ContentPage> 

最后一步,将其放入您的appDelegate

int _selectedSegement;  
        public int SelectedSegment {  
            get {  
                return _selectedSegement;  
            }  
            set {  
                _selectedSegement = value;  
                switch (SelectedSegment) {  
                    case 0:  
                        break;  
                    case 1:  
                        break;  
                    case 2:  
                        break;  
                    case 3:  
                        break;  
                }  
                OnPropertyChanged("SelectedSegment");  
            }  
        }