如何在Scroll上更改NavigationPage

时间:2019-06-04 01:57:34

标签: c# xaml xamarin.forms

我按照本教程(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”为空,应用程序崩溃了,我该如何解决?

1 个答案:

答案 0 :(得分:0)

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

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

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

已更新

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

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