Как отобразить всплывающее окно элемента представления списка в форме xamarin

#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 код.