Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在xamarin窗体中创建弹出视图_C#_Xamarin.forms - Fatal编程技术网

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文件动画比真实动画慢很多。很高兴我能帮助你。