如何修复 Xamarin 表单中动态生成的内容对象的 Z 索引?

问题描述

从图中可以看出,在后面的代码生成内容对象的视觉控制没有重叠。

No overlap of visual control over content object generated in code behind

我在 Xamarin 表单 C# 中使用 FrozenMountain SDK。想法是使用现有的视频流并在将重叠视频流的独立视觉控制中绘制圆圈作为独立对象。但是,我使用的 SDK 中的页面包含 ContentPage 作为显示单个视图的元素。代码后面,包含支持标记内容对象。而且,在这个 ContentPage 中有 AbsoluteLayout,它在后面的代码中充当内容对象。请看xaml代码

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"             
         xmlns:local="clr-namespace:Chat"
         x:Class="Chat.Video"
         x:Name="page" >

<AbsoluteLayout Margin="20">
    <Label Text="Stylish Header"
        FontSize="24"
        AbsoluteLayout.LayoutBounds="30,25" />
    <BoxView Color="Aqua" BackgroundColor="Transparent"  Opacity="0.7" AbsoluteLayout.LayoutBounds="0.5,0.1,100,100" AbsoluteLayout.LayoutFlags="PositionProportional" />
    <Button Text="Start" BackgroundColor="Blue" TextColor="White" AbsoluteLayout.LayoutBounds="0,1,50"  AbsoluteLayout.LayoutFlags="PositionProportional,WidthProportional" />
      </AbsoluteLayout>

和背后的代码

public Future<FM.LiveSwitch.LocalMedia> StartLocalMedia(Android.Content.Context context,Xamarin.Forms.AbsoluteLayout container)
    {
        return _CertificatePromise.Then((cert) =>
        {
            _Certificate = cert;

            dispatchToMainThread(() => {
                // Set up the layout manager.
                _LayoutManager = new XamarinLayoutManager(container);
            });
        Xamarin.Forms.View localView;
            if (ReceiveOnly)
            {
                return Promise<FM.LiveSwitch.LocalMedia>.ResolveNow<FM.LiveSwitch.LocalMedia>(null);
            }
            else
            {
                // Set up the local media.
                if (!EnableScreenShare)
                {
                    localView = new FMView(((LocalCameraMedia)_LocalMedia).GetView());
                    if (!AudioOnly)
                    {
                        // Set up the list of video source inputs
                        _LocalMedia.GetVideoSourceInputs().Then((inputs) =>
                        {
                            foreach(SourceInput input in inputs)
                            {
                                Chat.Instance.toolbaritems.Add( new ToolbarItem(input.ToString(),null,() =>
                                {
                                    _LocalMedia.VideoTrack.source.ChangeInput(input);
                                },ToolbarItemOrder.Secondary));
                            }
                        });
                    }
                }
                else
                {
                    localView = new FMView(((LocalScreenMedia)_LocalMedia).View);
                }

                // Add the local preview to the layout.
                if (localView != null)
                {
                    dispatchToMainThread(() => {
                        _LayoutManager.SetLocalView(localView);
                    });
                }
                InitLocalmaps("LocalView",_LocalMedia.VideoEncodings);

                // Start the local media.
                return _LocalMedia.Start();
            }
        });
    }

由于标记是动态的,我如何在视频流上重叠 BoxView 甚至简单的 textView,即如何在 Xamarin 表单中动态生成内容对象中修复 Z 索引?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...