【问题标题】:Xamarin.Forms.Theme.Dark xmls declaration causes error "A relative URI cannot be created..."Xamarin.Forms.Theme.Dark xmls 声明导致错误“无法创建相对 URI...”
【发布时间】:2019-06-10 14:42:23
【问题描述】:

按照 the instructions 添加和配置 Xamarin.Forms 深色主题或浅色主题(现已预览两年...)的 nuget 包,包括将 xmls 声明添加到 <Application> 元素:

<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:dark="clr-namespace:Xamarin.Forms.Themes;assembly=Xamarin.Forms.Theme.Dark"
             x:Class="Percebe.XF.App">
    <Application.Resources>
        <ResourceDictionary Source="dark:DarkThemeResources" />
        <ResourceDictionary>
            ...
        </ResourceDictionary>
    </Application.Resources>
</Application>

我在一个名为 App.xaml 的文件中拥有它,该文件位于 Android、iOS、UWP 和 Mac 项目共享的 .NET Standard 类库项目中。该项目包括两个所需的 nuget 包:Xamarin.Forms.Theme.BaseXamarin.Forms.Theme.Dark。但是 Visual Studio 2017 在 xmls:dark 行上给了我一个错误:“无法创建相对 URI,因为 'uriString' 参数表示绝对 URI。”,并且由于该行失败,我也得到了我在&lt;ResourceDictionary&gt; 元素中使用“dark:”命名空间时出现错误。听起来它没有将其视为绝对 URL,所以它可能无法识别 URI 协议“clr-namespace:”?如何解决此错误?

【问题讨论】:

标签: c# xamarin.forms themes


【解决方案1】:

Source 属性替换为MergedWith 即可:

<Application.Resources>
    <ResourceDictionary MergedWith="dark:DarkThemeResources" />
    ...
</Application.Resources>

我知道我们应该从 Xamarin.Forms 3.0 开始使用 Source。但由于Xamarin.Forms.Theme.BaseXamarin.Forms.Theme.Dark 仍处于预览阶段,Source 不支持dark: 之类的语法。我们仍然需要使用MergedWith 来使用此功能。

【讨论】:

  • 还没有机会尝试它,因为应用程序的优先级较高。我会告诉你的
猜你喜欢
  • 1970-01-01
  • 2016-11-05
  • 1970-01-01
  • 2012-11-09
  • 2010-12-29
  • 2015-08-29
  • 2012-06-18
  • 1970-01-01
相关资源
最近更新 更多