首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从资源中获取字符串以在xaml中的WPF资源节中赋值

如何从资源中获取字符串以在xaml中的WPF资源节中赋值
EN

Stack Overflow用户
提问于 2009-03-20 11:33:14
回答 6查看 48.5K关注 0票数 13

我有一个具有以下用户控件的XBAP应用程序:

代码语言:javascript
复制
  <UserControl x:Class="XXX.UsersGrid"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="Auto" Width="Auto">

        <UserControl.Resources>
            <DataTemplate x:Key="UpArrowUsers">
                <DockPanel>
                    <TextBlock Text="xxUser" x:Name="upArrowUsersHeader" HorizontalAlignment="Center"></TextBlock>
                    <Path x:Name="arrow" StrokeThickness = "1" Fill= "gray" Data= "M 5,10 L 15,10 L 10,5 L 5,10"/>
                </DockPanel>
            </DataTemplate>
    </UserControl>
    ...

现在我想从resx文件中获取字符串"xxUser“,该文件作为资源嵌入到应用程序中,我如何实现这一点?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-03-20 17:24:52

这些答案都不是你想要的。我会从阅读WPF中的本地化开始。您会发现,如果您正在使用WPF进行本地化,您将需要在应用程序中的每个节点上定义x:Uid。

http://msdn.microsoft.com/en-us/library/ms788718.aspx

票数 4
EN

Stack Overflow用户

发布于 2010-01-31 10:45:06

我可以在一个程序中做到这一点:

代码语言:javascript
复制
<TextBlock VerticalAlignment="Center" Margin="3"
           Text="{x:Static prop:Resources.OpenButton}"
           Visibility="{Binding Source={x:Static prop:Settings.Default}, Path=ShowButtonText, 
           Converter={StaticResource BoolToVis}}"></TextBlock>

我还必须在我的xaml中包含.Properties名称空间,如下所示:

代码语言:javascript
复制
xmlns:prop="clr-namespace:MyProjectNamespace.Properties"

这使我不仅可以使用为全球化项目定义的字符串资源,还可以绑定(双向)到我的应用程序的设置。这让我很容易记住窗口的位置、大小等。如你所见,使用设置。以获取设置和资源。获取资源。

正如Steven提到的,我认为“官方”方式或“最好”方式是将x:Uid粘贴到您想要全球化的所有东西上,但我没有这样做,而且它没有出现任何问题。我认为,如果您使用自动化工具或像在大型项目中那样拆分翻译任务,那么x:Uid这件事是最需要的。我只是在VS中手动做了我自己的事情,所以也许这是可以的。

票数 47
EN

Stack Overflow用户

发布于 2010-01-31 12:36:44

我在上面的“我能够做到……”中忘记提到的另外两点:

  1. 您不必将Properties.Resources对象包装在您自己的包中。您可以直接访问它,就像我在上面的示例中所做的那样。我认为包装对象是获得与我在第二点中讨论的相同结果的一种方法。
  2. 默认情况下,资源文件是用"ResXFileCodeGenerator“构建的。这使得它们在生成代码文件时是内部的,因此xaml不能访问它。您必须将其更改为生成公共类的"PublicResXFileCodeGenerator",。您可以通过在解决方案资源管理器中单击资源文件并编辑“自定义工具”属性来更改此设置。

(很抱歉,我无法编辑我的上述帖子,因为我当时是临时成员。)

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/665764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档