C# 如何在xamarin窗体中创建弹出视图
我需要创建一个带有覆盖的弹出视图 我已经尝试使用C# 如何在xamarin窗体中创建弹出视图,c#,xamarin.forms,C#,Xamarin.forms,我需要创建一个带有覆盖的弹出视图 我已经尝试使用绝对布局来实现这一点 但我无法实现从下到上的导航部分 这可以在xamarin.iOS中通过模式演示完成 如何在xamarin表单中执行此操作您可以使用Rg.Plugins.Popup在xamarin.Forms中创建精彩的弹出窗口。 参考这里 有关更多详细信息,弹出式动画更像是从底部缩放,而不是平移。(检查设置页面中android默认弹出窗口中的弹出动画) 通过设置锚点,然后设置弹出视图的缩放属性动画,可以实现类似导航的效果 您可以使用内置的Xam
绝对布局
来实现这一点
但我无法实现从下到上的导航部分
这可以在xamarin.iOS中通过模式演示
完成
如何在
xamarin表单中执行此操作
您可以使用Rg.Plugins.Popup在xamarin.Forms中创建精彩的弹出窗口。
参考这里
有关更多详细信息,弹出式动画更像是从底部缩放,而不是平移。(检查设置页面中android默认弹出窗口中的弹出动画) 通过设置锚点,然后设置弹出视图的缩放属性动画,可以实现类似导航的效果 您可以使用内置的Xamarin动画实现弹出窗口的任何动画。我在这里提供了一个从底部开始缩放的示例 弹出窗口的Xaml
<Frame
x:Name="popuplayout"
HasShadow="True"
IsVisible="False"
Scale="0"
BackgroundColor="White"
AbsoluteLayout.LayoutFlags="All"
AbsoluteLayout.LayoutBounds="1,1,0.5,0.5">
<StackLayout>
<Label Text="One"/>
<Label Text="Two"/>
<Label Text="Three"/>
<Label Text="Four"/>
<Label Text="Five"/>
<Label Text="Six"/>
</StackLayout>
</Frame>
cs按钮点击弹出动画
private async void Button_Clicked(object sender, EventArgs e)
{
if (!this.popuplayout.IsVisible)
{
this.popuplayout.IsVisible = !this.popuplayout.IsVisible;
this.popuplayout.AnchorX = 1;
this.popuplayout.AnchorY = 1;
Animation scaleAnimation = new Animation(
f => this.popuplayout.Scale = f,
0.5,
1,
Easing.SinInOut);
Animation fadeAnimation = new Animation(
f => this.popuplayout.Opacity = f,
0.2,
1,
Easing.SinInOut);
scaleAnimation.Commit(this.popuplayout, "popupScaleAnimation", 250);
fadeAnimation.Commit(this.popuplayout, "popupFadeAnimation", 250);
}
else
{
await Task.WhenAny<bool>
(
this.popuplayout.FadeTo(0, 200, Easing.SinInOut)
);
this.popuplayout.IsVisible = !this.popuplayout.IsVisible;
}
private async void按钮\u已单击(对象发送方,事件参数e)
{
如果(!this.popuplayout.IsVisible)
{
this.popuplayout.IsVisible=!this.popuplayout.IsVisible;
this.popuplayout.AnchorX=1;
this.popuplayout.ancory=1;
动画缩放动画=新动画(
f=>this.popuplayout.Scale=f,
0.5,
1.
松懈,;
动画fadeAnimation=新动画(
f=>this.popuplayout.Opacity=f,
0.2,
1.
松懈,;
提交(this.popuplayout,“popupScaleAnimation”,250);
提交(this.popuplayout,“popupFadeAnimation”,250);
}
其他的
{
等待任务
(
this.popuplayout.FadeTo(0,200,Easing.SinInOut)
);
this.popuplayout.IsVisible=!this.popuplayout.IsVisible;
}
上面的代码是UI结果
希望这能帮助您实现UI。Xamarin.Forms为Jason在评论中提到的模式页面提供支持。创建自定义视图并以模式样式显示。或者您可以编写动画,将视图从下向上移动。这非常有用,谢谢。但是有没有办法不用插头就能做到这一点在?你检查过这个吗?由于从mov文件转换,gif文件动画比真实动画慢很多。很高兴我能帮助你。