Xamarin Forms iOS - 奇怪的外壳阴影

Posted

技术标签:

【中文标题】Xamarin Forms iOS - 奇怪的外壳阴影【英文标题】:XamarinForms iOS - Weird Shell shadow 【发布时间】:2021-12-06 08:53:04 【问题描述】:

我正在使用 Xamarin Forms,今天我在我的应用程序中的 ios 上发现了奇怪的事情。顶部的 Shell 项目(通常是后退按钮和页面标题)现在有一些奇怪的阴影,我不知道如何禁用它。有人可以帮我解决这个问题吗?

这两个项目:

<Shell.BackButtonBehavior>
    <BackButtonBehavior Command="Binding BackButtonCommand" IconOverride="ic_arrow_green_left" />
</Shell.BackButtonBehavior>

<Shell.TitleView>
    <Grid Style="StaticResource NavBarGridWrapper">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="50" />
        </Grid.ColumnDefinitions>
        <Label Style="StaticResource NavBarMainTitle" Text="Binding Source=x:Static appResources:Resource.SettingsTitle, Converter=StaticResource StringToUpper" />
    </Grid>
</Shell.TitleView>

App.xaml:

<!--  NavBar  -->
        <Style
            x:Key="NavBarGridWrapper"
            TargetType="Grid">
            <!--<Setter Property="HorizontalOptions" Value="Fill" />
            <Setter Property="VerticalOptions" Value="Fill" />-->
        </Style>
        <Style
            x:Key="NavBarMainTitle"
            TargetType="Label">
            <Setter Property="FontFamily" Value="StaticResource MontserratBold" />
            <Setter Property="FontSize" Value="DynamicResource MediumFontSize" />
            <Setter Property="TextColor" Value="StaticResource DarkGrayText" />
            <Setter Property="VerticalOptions" Value="Center" />
        </Style>

【问题讨论】:

【参考方案1】:

您可以在appshell.xaml 中设置它:

   <Style x:Key="BaseStyle" TargetType="Element">
          .....
            <Setter Property="Shell.NavBarHasShadow" Value="False" />
        </Style>

【讨论】:

【参考方案2】:

在我的情况下,在后面的页面代码中设置 NavBarHasShadow:

public partial class HomeView : ContentPage

    public HomeView()
    
        InitializeComponent();

        Shell.SetNavBarHasShadow(this, false);
    

【讨论】:

以上是关于Xamarin Forms iOS - 奇怪的外壳阴影的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms - 从 2017 年到 2019 年更新 Visual Studio 后 iOS 上的奇怪行为

Xamarin.Forms IOS 断点未命中

在 Visual Studio 上运行 Xamarin Forms iOS 时出现 GetBuiltProjectOutputRecursive 错误

Xamarin.Forms DependencyService 始终返回 null

为啥我的 Xamarin Forms iOS 应用程序在使用 Microsoft Azure 移动服务时崩溃

Xamarin Forms,在运行时在 CarouselView 中动态添加项目,奇怪的行为