페이지별로 NavigationPage의 배경색 변경
5162 단어 Xamarin.Forms
결론, Prism은 전혀 관계 없습니다만, Prism 이용하고 있는 경우 NavigationService를 이용하고 있어, Xamarin.Forms측과 분리해 생각하고 있는지 우선 고민했습니다
어떻게 했는지
App.xaml.cs
public partial class App : PrismApplication
{
protected override void OnInitialized()
{
InitializeComponent();
NavigationService.NavigateAsync("/RootPage/MyNavigationPage/MainPage");
}
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<RootPage>();
Container.RegisterTypeForNavigation<MyNavigationPage>();
Container.RegisterTypeForNavigation<MainPage>();
Container.RegisterTypeForNavigation<OtherPage>();
}
}
MyNavigationPage.xaml.cs
public partial class MyNavigationPage : NavigationPage
{
public MyNavigationPage()
{
InitializeComponent();
Pushed += (sender, e) => {
CheckBarBackColor();
};
Popped += (sender, e) =>
{
CheckBarBackColor();
};
}
void CheckBarBackColor()
{
if (CurrentPage is MainPage)
{
BarBackgroundColor = Color.Black;
}
else {
BarBackgroundColor = Color.Gray;
}
}
단지 이것뿐입니다만,
NavigationPage.SetBackButtonTitle
라든지 NavigationPage.SetHasNavigationBar
라든지 있으므로, 밖에서 지정하는 것이라고 생각해 상당히 시간을 사용해 버렸습니다(SetBarBackground 없지만 어떻게 하면 좋다고 한다)깨달아 버리면, 스스로 자신의 상태를 확인해 적절한 처리를 하는 지극히 당연합니다만 이런 부분에서 망설이거나 합니다
이것이 최적 해가 아닐지도 모르지만, 일단 이것으로 구현은 가능하다는 것으로
이런 쪽이 멋지다든가, 이렇게 해야 한다든가 있으면 알고 싶어서 잘 부탁드립니다~~
Reference
이 문제에 관하여(페이지별로 NavigationPage의 배경색 변경), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/itaoyuta/items/d248112a485c2f57dcea텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)