【问题标题】:Using Resource files in XAML in Xamarin.Forms在 Xamarin.Forms 中使用 XAML 中的资源文件
【发布时间】:2018-02-18 14:44:30
【问题描述】:

我正在尝试在我的 XAML 中使用资源文件。出于某种原因,我不断收到找不到类型Texts 的错误。不知道我在这里做错了什么。

XAML

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:CashRegisterApp.Resources"
             x:Class="CashRegisterApp.Start">
    <ContentPage.Content>
        <StackLayout
            VerticalOptions="CenterAndExpand" 
                HorizontalOptions="CenterAndExpand" >
        <Label Text="{x:Static local:Texts.Start}"/>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

RESX

解决方案浏览器

【问题讨论】:

标签: xaml xamarin xamarin.forms resx


【解决方案1】:

已知在共享项目中创建 RESX 文件会导致问题。您可以在 Xamarin 论坛中看到几篇关于此的冗长帖子(例如 herehere)。

允许您使用所需方法的最简单的解决方案是在您的解决方案中创建一个新的 PCL 库的 .NET 标准库,在那里创建您的 RESX 文件并将其可见性设置为 public。然后,您将能够按预期使用 x:Static 语法来使用它们。

许多开发人员使用自定义标记扩展形式的替代方案,例如 ClaudioPereiraforum 中的解决方案。这进一步简化了语法。

最后,有关 Xamarin.Forms 的最详细信息,您可以参考official documentation

【讨论】:

  • 请尝试使用添加新文件对话框在库中创建一个全新的 RESX 文件,将其设置为公共,添加示例字符串并尝试引用它。我怀疑您现有的 RESX 没有生成它工作所需的代码隐藏
  • 好像还是不行。我仍然收到错误消息。我觉得我在这里犯了最小的错误......
  • 我已经修复了当前的错误,但现在我得到了下一个错误。无法解决程序集版本=0.0.0.0culture=neutral publickeytoken=null'
【解决方案2】:

我也有这个问题,我希望这个答案能帮助人们在未来解决这个问题。

按照this 指南教我如何在 Xamarin 表单中设置 resx 文件。 他们的 TranslateExtension 允许直接从 Xaml 引用 resx 文件。

不幸的是,在其原始形式中,它不会在语言环境中获取运行时更改。 这可以通过更改其“Localize”类(在本机平台上)以在通过 SetLocale 方法更改时保留对 CultureInfo 的引用并在调用 GetCurrentCultureInfo 方法时返回它来解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2019-06-21
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多