我想在点击片段控件的单个xaml页面之间切换多个页面。 我想让页面上半部分的页面与段控制相对应,并且在此控件下方具有简单的布局,用于替换或切换位置变化以下的其他页面,但上部仍然是下一页切换。
所以,我想在xamarin.forms中使用xaml中的段控件来编辑切换页面。
答案 0 :(得分:2)
有一个nuget包FreshEssentials。它具有分段控制按钮的跨平台实现。找到这个Github存储库以了解实现。
希望这有帮助!
答案 1 :(得分:2)
参考下面的链接,使用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");
}
}