C# 移除shell操作栏下的阴影Xamarin Forms Android
我很难找到解决方案,甚至文档站点上声明的属性也不起作用。这是文档中的示例:C# 移除shell操作栏下的阴影Xamarin Forms Android,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我很难找到解决方案,甚至文档站点上声明的属性也不起作用。这是文档中的示例: <ContentPage ... Shell.NavBarHasShadow="true"> ... </ContentPage> ... 当我尝试将属性添加到ContentPage时,它返回一个错误 严重性代码说明项目文件行抑制状态 错误XLS0415在中找不到可附加属性“Hassadow” 键入“Shell”。LoanApp2 LoanHistory.x
<ContentPage ...
Shell.NavBarHasShadow="true">
...
</ContentPage>
...
当我尝试将属性添加到ContentPage时,它返回一个错误
严重性代码说明项目文件行抑制状态
错误XLS0415在中找不到可附加属性“Hassadow”
键入“Shell”。LoanApp2 LoanHistory.xaml 8
这是my MainPage.xaml:
<?xml version="1.0" encoding="utf-8" ?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:LoanApp2.Views"
mc:Ignorable="d"
x:Class="LoanApp2.MainPage" BackgroundColor="#62bef0" Title="Dylan Villaruel">
<FlyoutItem Title="MyTabApp" Shell.TabBarIsVisible="False" FlyoutDisplayOptions="AsMultipleItems">
<ShellContent Title="Loan History" IsTabStop="True" ContentTemplate="{DataTemplate local:LoanHistory}"/>
<ShellContent Title="Amount Loanable" IsTabStop="True" ContentTemplate="{DataTemplate local:AmountLoanable}"/>
</FlyoutItem>
</Shell>
外壳内容都被ContentPage包装为根标记
@e700867
您需要创建自定义渲染器以从shell中的导航中移除阴影,希望下面的代码能够帮助您:
public class CustomShellRenderer : ShellRenderer
{
public CustomShellRenderer(Context context) : base(context)
{
}
protected override IShellToolbarAppearanceTracker CreateToolbarAppearanceTracker()
{
return new CustomShellToolbarAppearanceTracker(this);
}
}
internal class CustomShellToolbarAppearanceTracker : IShellToolbarAppearanceTracker
{
private CustomShellRenderer customShellRenderer;
public CustomShellToolbarAppearanceTracker(CustomShellRenderer customShellRenderer)
{
this.customShellRenderer = customShellRenderer;
}
public void Dispose()
{
}
public void ResetAppearance(Toolbar toolbar, IShellToolbarTracker toolbarTracker)
{
}
public void SetAppearance(Toolbar toolbar, IShellToolbarTracker toolbarTracker, ShellAppearance appearance)
{
toolbar.SetBackgroundColor(Android.Graphics.Color.Green);
var viewParent = (Android.Support.Design.Widget.AppBarLayout)toolbar.Parent;
viewParent.SetElevation(0.0f);
}
}
谢谢@e700867
您需要创建自定义渲染器以从shell中的导航中移除阴影,希望下面的代码能够帮助您:
public class CustomShellRenderer : ShellRenderer
{
public CustomShellRenderer(Context context) : base(context)
{
}
protected override IShellToolbarAppearanceTracker CreateToolbarAppearanceTracker()
{
return new CustomShellToolbarAppearanceTracker(this);
}
}
internal class CustomShellToolbarAppearanceTracker : IShellToolbarAppearanceTracker
{
private CustomShellRenderer customShellRenderer;
public CustomShellToolbarAppearanceTracker(CustomShellRenderer customShellRenderer)
{
this.customShellRenderer = customShellRenderer;
}
public void Dispose()
{
}
public void ResetAppearance(Toolbar toolbar, IShellToolbarTracker toolbarTracker)
{
}
public void SetAppearance(Toolbar toolbar, IShellToolbarTracker toolbarTracker, ShellAppearance appearance)
{
toolbar.SetBackgroundColor(Android.Graphics.Color.Green);
var viewParent = (Android.Support.Design.Widget.AppBarLayout)toolbar.Parent;
viewParent.SetElevation(0.0f);
}
}
谢谢您可以在页面的代码隐藏中添加Shell.setNavBarHassadow(此,false)。例如:
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class HomeView : ContentPage
{
public HomeView()
{
InitializeComponent();
Shell.SetNavBarHasShadow(this, false);
}
}
您可以在页面的codebehind中添加Shell.setNavBarHassadow(此,false)。例如:
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class HomeView : ContentPage
{
public HomeView()
{
InitializeComponent();
Shell.SetNavBarHasShadow(this, false);
}
}
我可以在Shell项目中添加for Shell.navbarhassadow=“true”,请检查您的Xamarin.Forms版本,我的版本是4.4.0。991265@CherryBu-MSFT如何检查Xamarin.Forms版本?它在我的about页面上看不到Xamarin.Forms,只有另一个Xamarin和Xamarin。*没关系,您实际上在visual studio的about部分看不到该版本。您必须检查nuget包管理器。我说我可以为Shell.navbarhassadow=“true”添加版本4.3I。在Shell项目中,请检查您的Xamarin.Forms版本,我的版本是4.4.0。991265@CherryBu-MSFT如何检查Xamarin.Forms版本?它在我的about页面上看不到Xamarin.Forms,只有另一个Xamarin和Xamarin。*没关系,您实际上在visual studio的about部分看不到该版本。您必须检查nuget包管理器。我的版本是4.3