Xamarin.forms PopUp to包含其他控件,如DateTime选择器、dropdownlist
我是新手。我记得在Win10中,有一个弹出式UI,它可以包含许多控件,如下拉框、DatePciker和其他控件。此弹出窗口可以用Xaml构建。Xamarin.forms PopUp to包含其他控件,如DateTime选择器、dropdownlist,xamarin.forms,Xamarin.forms,我是新手。我记得在Win10中,有一个弹出式UI,它可以包含许多控件,如下拉框、DatePciker和其他控件。此弹出窗口可以用Xaml构建。 我正在为平板电脑开发一个应用程序。 可以在包含下拉列表、日期选择器、时间选择器的Xamarin表单中使用此类弹出窗口?做这样复杂的UI是明智的吗?它会导致Android和iOS出现问题吗 问题:如何在Xaml中创建弹出窗口 so ,I can use a button to open or close it. var button = new Butt
我正在为平板电脑开发一个应用程序。 可以在包含下拉列表、日期选择器、时间选择器的Xamarin表单中使用此类弹出窗口?做这样复杂的UI是明智的吗?它会导致Android和iOS出现问题吗
问题:如何在Xaml中创建弹出窗口
so ,I can use a button to open or close it.
var button = new Button {Text = "Show Popup"};
button.Clicked += (s, e) => popup.Show();
更新
<?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="MyApp.View.PopUpDemo"
Title="PopUp Demo"
Icon="itemIcon3">
<Grid>
<Grid>
<!--Your Page xaml-->
<Button x:Name="btnPopUp" Click="ShowPopUp"/>
</Grid>
<Grid HorizontalOptions="Fill" BackgroundColor="##60000000" IsVisible="{Binding GridVisibility}">
<Grid VerticalOptions="CenterAndExpand">
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".5*"/>
<ColumnDefinition Width="9*"/>
<ColumnDefinition Width=".5*"/>
</Grid.ColumnDefinitions>
<Frame Grid.Column="1" Padding="0" HasShadow="True" OutlineColor="#e6e6e6">
<Grid BackgroundColor="White" RowSpacing="0" ColumnSpacing="0">
<!--content for popup-->
</Grid>
</Frame>
</Grid>
</Grid>
</Grid>
</ContentPage>
我想知道:
我使用的是普通的内容页面1) 在其中,我放置您的标记,然后删除。这是正确的吗?
2) 框架是否将成为弹出窗口
3) 在btnPopUp中使用什么代码来显示弹出窗口
谢谢是的,您可以在没有任何性能问题的情况下实现它。您可以使用覆盖显示弹出窗口,如下所示
<Grid>
<Grid>
<!--Your Page xaml-->
</Grid>
<Grid HorizontalOptions="Fill" BackgroundColor="##60000000" IsVisible="{Binding GridVisibility}">
<Grid VerticalOptions="CenterAndExpand">
<Grid.ColumnDefinitions>
<ColumnDefinition Width=".5*"/>
<ColumnDefinition Width="9*"/>
<ColumnDefinition Width=".5*"/>
</Grid.ColumnDefinitions>
<Frame Grid.Column="1" Padding="0" HasShadow="True" OutlineColor="#e6e6e6">
<Grid BackgroundColor="White" RowSpacing="0" ColumnSpacing="0">
<!--content for popup-->
</Grid>
</Frame>
</Grid>
</Grid>
</Grid>
这个很简单。这里我添加了网格来实现这一点。您还可以使用其他布局。但根据xamarin团队的说法,网格的性能更好
对于第二个网格,我添加了可见性属性,以便您可以连接任何事件。
在这里,我为弹出窗口添加了背景色###60000000,这样当弹出窗口出现时,背景将是透明的,具有浅黑色效果
如果您需要在多个屏幕上显示相同的弹出窗口,您可以使用第三方插件,这将使您的工作更轻松。为此,您必须创建一个新的contentpage,将contentpage替换为
<pages:PopupPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup"
xmlns:animations="clr-namespace:Rg.Plugins.Popup.Animations;assembly=Rg.Plugins.Popup"
x:Class=""
BackgroundColor="##60000000"
InputTransparent="True"
HasSystemPadding="True"
CloseWhenBackgroundIsClicked="False">
<pages:PopupPage.Animation>
<animations:MoveAnimation
PositionIn="Bottom"
PositionOut="Bottom"/>
</pages:PopupPage.Animation>
<Grid>
<!--your xaml code-->
</Grid>
注意:将youpage.xaml.cs中的contentPage替换为PoupPage。要获得弹出效果,您的布局应该像我显示的第一个示例一样。在这里你也可以得到很好的动画效果。您可以在他们的网站上看到更多详细信息
现在可以通过调用来调用弹出窗口:navigation.PushPopupAsync(newyourContentPage())代码>
并通过调用wait PopupNavigation.RemovePageAsync(this)删除弹出窗口代码>
希望这对您有用请查看我的更新。如果您能首先指导我使用您的方法,我将不胜感激。当用户点击按钮时,我想在同一页上显示弹出窗口。两种方法都会在同一页上显示弹出窗口。在使用第二种方法时,您只需要为弹出窗口编写一次XAML,并且您可以从任何页面调用它,它将显示为弹出窗口。你可以尝试任何方法。如果你被卡住了,请告诉我。我被困在如何调用我的更新和我的问题上面弹出窗口。你能给我指一下台阶吗?ThanksI已经为第一种方法()创建了一个演示。关于使用库的第二种方法,您可以参考。希望这对你有帮助。谢谢