首页 > 解决方案 > 如何在 Scroll 上更改 NavigationPage

问题描述

我按照本教程(https://xamgirl.com/transparent-navigation-bar-in-xamarin-forms/)使导航栏透明并且可以正常工作,但是我想更改 Value="Transparent" 让我们说向下滚动后到 Value="Black"

<NavigationPage.BarBackgroundColor>
    <OnPlatform x:TypeArguments="Color">
        <On Platform="Android, iOS" Value="Transparent"/>
    </OnPlatform>
</NavigationPage.BarBackgroundColor>

我试图从 .cs 文件而不是 .xaml 更改颜色,但该属性不能以这种方式工作,也尝试使用绑定但如果“Value”为空应用程序崩溃,我该如何解决这个问题?

标签: c#xamlxamarin.forms

解决方案


在 Xamrin Forms 中,如果有导航栏,可以设置栏背景如下:

var navigationPage = Application.Current.MainPage as NavigationPage;
if (null != navigationPage)
{
     navigationPage.BarBackgroundColor = Color.Black;
}

请注意,初始化接口时 Application.Current.MainPage 为 null。

更新

  1. ScrollX您可以使用 ScrollView 的和ScrollY属性确定水平和垂直滚动偏移量。这些是可绑定的,因此如果您使用 MVVM,您可以将它们映射到视图模型上的属性。如果您不使用 MVVM 并且想要对ScrollXor中的更改做出反应ScrollY,请将侦听器添加到 ScrollView 的Scrolled事件。

  2. 要查找 ScrollView 中内容的总高度或宽度,请使用该ContentSize属性。该Content属性将为您提供包含的内容View


推荐阅读