【问题标题】:Xamarin Form Cascading Style Sheets (CSS) Not working. Failing to load a style fileXamarin 表单级联样式表 (CSS) 不起作用。无法加载样式文件
【发布时间】:2018-08-16 08:17:22
【问题描述】:

我在 Xamarin 表单中使用级联样式表 (CSS)。我在 PCL 项目中添加了级联样式表 (CSS) 文件,我试图调用 CSS,它没有加载给出异常。即使我已经获得了完全的许可,并按照link的相同步骤进行操作

我已经为此 css 文件设置了构建操作 - EmbeddedResource

----代码-----

CSS

body {
    background-color: white;
}

.frameStyle {
    background-color: rgb(50,50,255);
}

使用 XAML。

      <ContentPage.Resources>
        <StyleSheet Source="Assets/styles.css" />
    </ContentPage.Resources>

我在加载 CSS 文件时遇到了异常,如下所示。

Resource: 'Views/DashBoard/Assets/styles.css' not found.
Stack Exception:
  at Xamarin.Forms.Xaml.CreateValuesVisitor.Visit (Xamarin.Forms.Xaml.ElementNode node, Xamarin.Forms.Xaml.INode parentNode) [0x0024e] in D:\a\1\s\Xamarin.Forms.Xaml\CreateValuesVisitor.cs:94 
  at Xamarin.Forms.Xaml.ElementNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x000ac] in D:\a\1\s\Xamarin.Forms.Xaml\XamlNode.cs:149 
  at Xamarin.Forms.Xaml.ElementNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x00044] in D:\a\1\s\Xamarin.Forms.Xaml\XamlNode.cs:143 
  at Xamarin.Forms.Xaml.RootNode.Accept (Xamarin.Forms.Xaml.IXamlNodeVisitor visitor, Xamarin.Forms.Xaml.INode parentNode) [0x00079] in D:\a\1\s\Xamarin.Forms.Xaml\XamlNode.cs:202 
  at Xamarin.Forms.Xaml.XamlLoader.Visit (Xamarin.Forms.Xaml.RootNode rootnode, Xamarin.Forms.Xaml.HydrationContext visitorContext) [0x00054] in D:\a\1\s\Xamarin.Forms.Xaml\XamlLoader.cs:140 
  at Xamarin.Forms.Xaml.XamlLoader.Load (System.Object view, System.String xaml) [0x00058] in D:\a\1\s\Xamarin.Forms.Xaml\XamlLoader.cs:89 
  at Xamarin.Forms.Xaml.XamlLoader.Load (System.Object view, System.Type callingType) [0x00026] in D:\a\1\s\Xamarin.Forms.Xaml\XamlLoader.cs:67 
  at Xamarin.Forms.Xaml.Extensions.LoadFromXaml[TXaml] (TXaml view, System.Type callingType) [0x00000]

请告诉我我做错了什么谢谢。

【问题讨论】:

  • 你在android或ios中遇到这个错误吗?
  • 这将在 IOS 中推出
  • 那么你的 android assets 文件夹中有 css 吗?
  • 我在 android assets 中没有任何 CSS 文件。我只使用来自 PCL 的
  • 我在 IOS 中遇到问题,而不是在 android 中

标签: c# ios xaml xamarin xamarin.forms


【解决方案1】:

与您的链接相关:“StyleSheet.Source 属性将样式表指定为相对于封闭 XAML 文件位置的 URI,或者如果 URI 以 / 开头,则相对于项目根目录” em>

=> 我认为您错过了“/”字符。应该是:

<StyleSheet Source="/Assets/styles.css" />

【讨论】:

  • 如果我正在使用这个 现在例外是不同的 - 位置 11:18。 Source 只接受相对 URIs
【解决方案2】:

对于样式表引用,我发现当我将 .xaml 文件移动到 Views 文件夹时,我必须更改 css 的路径以使用“..”表示法,例如:

<StyleSheet Source="../../Styles.css" />

如果我使用“/”来表示项目根目录,我会收到错误消息:

Xamarin.Forms.Xaml.XamlParseException:位置 14:10。仅来源 接受发生的相对 URI

使用 Android 和 iOS 使用 Xamarin forms 3.2 .Net Standard 2 进行测试

【讨论】:

    【解决方案3】:

    我仍然遇到同样的问题。一切工作路径都是正确的,所有 CSS 效果都工作正常,但仍然出现路径问题。


    如果遇到问题,可以使用内联样式或使用资源字典

    【讨论】:

    • 这个答案不是很清楚。你能提供更多细节吗?
    猜你喜欢
    • 1970-01-01
    • 2022-07-21
    • 2019-08-27
    • 2016-12-08
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 2012-12-08
    相关资源
    最近更新 更多