0

我总是在 xaml 中制作新前缀时遇到问题。大多数时候,我收到在程序集中找不到 URI 的消息。我的设置:

我有一个带有 MainWindow.xaml 文件的 WPF 项目(在具有类库和 asp.NET 项目的解决方案中)。XAML 以 Window x:Class="MainWindow" ... 开头。所以默认情况下,它没有命名空间。在同一个项目中,我创建了一个文件夹“文件夹”。在那个文件夹中,我有 resx 文件。我需要做的是在 xaml 中添加一个前缀,这样我就可以处理这些文件。我在想:

xmlns:p="clr-namespace:WpfApplication.Folder"

然后是我的控件

<Label Content="{x:Static p:NameResxFile.KeyName></Label>

但是,前缀会生成“在程序集中找不到 URI”错误。我只是没有做前缀?

提前致谢。

编辑

如果您无法将命名空间引用到文件夹,这里发生了什么?

4

2 回答 2

0

xmlns指定命名空间,它不会打扰文件夹或文件,如果您需要访问外部资源,您可以通过ResourceDictionary.

我认为有这样的事情:

<Window.Resources>
    <ResourceDictionary x:Key="ExternalRes" Source="Folder/File.xaml"/>
    ....
</Window.Resources>
于 2011-02-09T13:18:13.170 回答
0

要引用资源字典的元素,您应该将该字典添加到控件的Resources集合中或将其注册到App.xaml文件中。之后,您可以使用StaticResource扩展来访问该元素。您的代码将如下所示:

  <UserControl.Resources>
    <ResourceDictionary>
      <ResourceDictionary.MergedDictionaries>
         <ResourceDictionary Source="/Folder/NameResxFile.xaml" />
      </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
  </UserControl.Resources>
  <!-- ... -->
  <Label Content="{StaticResource KeyName}"/>

如果您想将资源字典放入另一个程序集并引用它,事情会变得更加棘手。为此,请参阅WPF文章中的PackURI 。

于 2011-02-09T13:25:46.907 回答