#xamarin #xamarin.forms #xamarin.ios #popup
Вопрос:
Привет, разработчик, я хочу отобразить всплывающее окно на своей странице. Данная ссылка на изображение красная часть, которую я хочу отобразить, пожалуйста, помогите мне, как я могу это сделать в форме xamarin
Hello Xamarin developer I have attach one image link in this question .This image red mark portion I want display on my page how can I do that
Комментарии:
1. Можно было бы обойтись сеткой, и, пожалуйста, опубликуйте свой код страницы.
2. как я могу это сделать ,у вас есть какие-нибудь рекомендации для этого
3. @priyankapawar если вы используете архитектуру prism, то используйте службу диалога prism для достижения желаемого результата. prismlibrary.com/docs/xamarin-forms/dialogs/dialog-service.html
4. проверьте это docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/… может помочь
Ответ №1:
Не уверен, каково содержимое вашего ListView, но вот простой пример всплывающего окна с ListView в нем, чтобы вы могли адаптировать его по своему усмотрению.
XAML:
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="TestPopUp.MainPage">
<AbsoluteLayout Padding="0" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<StackLayout HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
<Button Text="Pop up!" VerticalOptions="CenterAndExpand" HorizontalOptions="Center" Clicked="Button_Clicked" />
</StackLayout>
<ContentView x:Name="popupView" BackgroundColor="Transparent" Padding="10, 0" IsVisible="false" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All">
<StackLayout VerticalOptions="Center" HorizontalOptions="Center">
<Frame CornerRadius="10" Padding="0" BorderColor="LightGray">
<StackLayout Orientation="Vertical" HeightRequest="300" WidthRequest="200" BackgroundColor="White">
<ListView SeparatorVisibility="None" ItemsSource="{Binding MyList}" VerticalScrollBarVisibility="Never">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding .}" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</Frame>
</StackLayout>
</ContentView>
</AbsoluteLayout>
</ContentPage>
C#:
public partial class MainPage : ContentPage
{
public ObservableCollection<string> MyList { get; set; } = new ObservableCollection<string>();
public MainPage()
{
InitializeComponent();
MyList.Add("Item 1");
MyList.Add("Item 2");
MyList.Add("Item 3");
MyList.Add("Item 4");
MyList.Add("Item 5");
MyList.Add("Item 6");
MyList.Add("Item 7");
BindingContext = this;
}
private void Button_Clicked(object sender, EventArgs e)
{
popupView.IsVisible = true;
}
}
Это даст вам такой результат:
Поэтому, когда вы хотите показать это всплывающее окно, просто введите popupView.IsVisible = true
код.