XAML 即使内容页面背景色设置为透明,使用PushModelAsync导航页面时,背景色也始终为黑色

gijlo24d  于 2022-12-16  发布在  其他
关注(0)|答案(2)|浏览(182)

我的目标是从另一个内容页面的顶部查看底部页面的内容。为了实现这一点,我使用了PushModalAsync进行导航,并将导航页面的BackgroundColor属性设置为Transparent。我可以在Android上查看底部页面的内容。然而在iOS平台上,总是显示黑色,我无法阅读底部页面的内容。2为什么即使在PushModalAsync中设置为透明,背景颜色也总是黑色?

注意:当我将导航更改为PushAsync时,iOS平台显示白色。
**预期行为:**使用PushModalAsync导航时,背景色不应为黑色,而应是透明的
**实际行为:**使用PushModalAsync导航时,即使内容页面背景颜色设置为透明,背景颜色也始终为黑色
Android屏幕截图

iOS屏幕截图

问题再现示例如下所示:DemoSample

cpjpxq1n

cpjpxq1n1#

如果你想这样做,这是不可能的(这将需要这么多的工作,你不能指望有人提供你的解决方案)。
在iOS上,该控件(ViewController)在表示模式下是这样绘制的。因此,只要您使用该控件和该模式,它就会以这种方式工作,与您使用Xamarin或其他东西无关。由于ViewControllers是最基本的控件,因此用其他东西替换它们是不现实的。但您可以替换表示模式。在Xamarin.Forms中,您可以这样做:

<ContentPage ...
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
             ios:Page.ModalPresentationStyle="FormSheet">
    ...
</ContentPage>

这将导致一些不同的视觉表现,但这是唯一的方法,有一个ViewController绘制在另一个没有进入一些深度定制,将需要大量的代码,特别是在Xamarin.Forms。
您也可以尝试一些其他值,但默认值将不起作用。

7uhlpewt

7uhlpewt2#

在iOS中,层次结构由视图控制器管理。每个页面都有单独的视图控制器。页面由窗口、根视图和子视图组成。通过将背景颜色设置为透明,您无法看到上一页的布局。
有关详细信息,请参阅以下文档:
用户界面|微软
视图控制器层次结构|苹果

相关问题