WPF XAML 中的 My.Resources?

2023-11-22

有没有办法通过 Xaml 访问 My.Resources?

像这样

<Image Source="{Binding MyImage,
    Source={x:Static my:Resources},
    Converter={StaticResource MyBitmapToImageSourceConverter}}" />

这是我得到的错误:\Application.xaml(122,36):错误 MC3029:“my:Resources”成员无效,因为它没有限定类型名称。

上面的方法当然行不通。

注:转换器仅供说明之用。


Update:

我想到了一个想法,如果可行的话这可能是一个好方法,我为资源创建了一个包装类:

Public Class Resources
    Public Shared ReadOnly m_Resources As New Resources
    Public Shared ReadOnly Property Resources() As Resources
        Get
            Return m_Resources
        End Get
    End Property

    Public ReadOnly Property MyResources(ByVal name As String) As Object
        Get
            Return My.Resources.ResourceManager.GetObject(name)
        End Get
    End Property
End Class

然后在我的绑定中我尝试像这样访问它:

<Setter Property="ImageSource"
Value="{Binding MyResources[Ok], Source={x:Static src:Resources.Resources}}"/>

但我仍然收到以下消息:

System.Windows.Data 错误:16:无法从“”(类型“资源”)获取“MyResources”值(类型“对象”)。 BindingExpression:Path=MyResources[确定]; DataItem='资源'(HashCode=59109011);目标元素是“Image”(名称=“btnOk”);目标属性是“Source”(类型“ImageSource”) TargetParameterCountException:“System.Reflection.TargetParameterCountException:参数计数不匹配。

顺便说一句,我在 MyResources Getter 中放置了一个测试 MessageBox,看起来该属性根本没有被访问。


问题是,默认情况下,为Resources.resx文件生成代码的工具是VbMyResourcesResXFileCodeGenerator(项目项的“自定义工具”属性)。该工具生成一个模块,其中资源属性是内部的(Friend),因此StaticExtension无法访问它。要解决该问题,您应该将 Resources.resx 的自定义工具更改为PublicVbMyResourcesResXFileCodeGenerator,这将生成公共成员。

另外,VB 模块大致相当于静态(共享)类,因此没有可用作绑定源的 Resources 实例,因此您无法为绑定指定 Path。您应该将绑定源直接设置为您想要的属性:

<Image Source="{Binding Source={x:Static my:Resources.MyImage},
    Converter={StaticResource MyBitmapToImageSourceConverter}}" />

注意:还有另一对工具可用于生成资源文件的代码:ResXFileCodeGenerator and PublicResXFileCodeGenerator。这些工具生成类而不是模块。

编辑:要使用的名称空间映射如下:

xmlns:myRes="clr-namespace:YourApplicationName.My.Resources"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF XAML 中的 My.Resources? 的相关文章

随机推荐

  • Dockerfile 的优点

    我们可以创建 Docker 映像并将它们全部推送到 Hub 而无需 Dockerfile Dockerfile 为什么有用 它有什么优点呢 Dockerfile 的创建是一个非常耗时的过程 并且只能由人来完成 我想知道基于基础镜像的提交镜像
  • msysgit 的麻烦

    所以我似乎在设置 msysgit 时遇到了一些实际问题 我可以使用 putty 连接到我的 SSH 目录 ssh 用户 主机 端口 我有正确的钥匙 我也可以使用 plink 通过 plink P PORT user host i path
  • jVectorMap 渲染太小

    我的 jVectorMap 没有采用我在包含的 div 上提供的新高度 并且仅以默认 高度 54px 进行渲染 这是我的 script js 文件中的 document ready 函数 team map usa vectorMap map
  • MS Project 甘特图控件在 C# 中的使用

    有人用过 C 中的 MS Project 甘特图控件吗 如果是 您能分享一些与此相关的资源吗 您还可以检查甘特图库对于 WPF 或 Windows 窗体 它们不需要在客户端计算机上安装 Microsoft Project 但为项目和相关甘特
  • 中继器内的复选框,如何在检查更改功能中获取命令名称值

    您好 我的 asp net listview 项目模板中有上面的 html 标记 td td
  • Go 中什么时候应该使用 new ?

    在原始语言结构中使用似乎毫无意义 因为您无法指定任何类型的值 func main y new float fmt Printf Len d len y gt Len 0 对于结构来说 它使bit更有道理 但是说起来有什么区别y new my
  • 如何使用react-router使用私有路由?

    我想使用身份验证来创建安全路由 我已经在 App jsx 文件中定义了路由 我使用 Route 来定义要渲染的组件 在 App jsx 中
  • 如何删除所有重复项,以便数据框中不留下任何重复项?

    有一个类似的问题对于 PHP 但我正在使用 R 并且无法将解决方案转化为我的问题 我有一个包含 10 行和 50 列的数据框 其中一些行完全相同 如果我在它上面使用 unique 我会得到一行 比方说 类型 但我真正想要的是只得到那些只出现
  • ELF 标头魔法 - 为什么将 0x7F 放入其中?

    我读过的关于 ELF header magic 的每一个资源都指出它包含 ASCII 编码的 ELF 然后简短地提到 0x7F 被添加到它前面而没有解释 0x7F有什么原因吗 是为了避免与现有格式发生冲突吗 是否符合现有标准 用于检测有关磁
  • Node.js 中类似“生成线程”的行为

    我想向一个小型 Web 应用程序添加一些管理实用程序 例如 备份数据库 用户单击按钮 HTTP 响应将立即返回 尽管可能长时间运行的进程已在后台启动 在 Java 中 这可能通过生成一个独立线程来实现 在 Scala 中则通过使用 Acto
  • 在WM6上查找存储卡路径

    有没有一种简单的方法可以在 Windows Mobile 设备上找到存储卡的路径 当有存储卡和蓝牙ftp连接时 挂载点通常是 Storage Card 但可以本地化为其他语言或由 OEM 修改 某些设备使用 SD Card 或其他挂载点 并
  • 如何在 Haskell 中处理无限的 IO 对象列表?

    我正在编写一个从文件列表中读取的程序 每个文件要么包含到下一个文件的链接 要么标记它是链的末尾 作为 Haskell 的新手 处理这个问题的惯用方法似乎是为此目的提供一个可能文件的惰性列表 我有 getFirstFile String gt
  • WPF - 如何强制命令通过其 CommandBindings 重新评估“CanExecute”

    我有一个Menu其中每个MenuItem在层次结构中有其Command属性设置为RoutedCommand我已经定义了 相关的CommandBinding提供评估的回调CanExecute它控制每个的启用状态MenuItem This al
  • 闭包如何捕获之前调用的值?

    typealias IntMaker Void gt Int func makeCounter gt IntMaker var n 0 Line A func adder gt Integer n n 1 return n return a
  • 禁用 JavaDocs 的注释

    是否有一个注释来声明某个方法即使是公共的也不会包含在JavaDocs中 就像是 nojavadocs public void foo 附 我理解这里关于 API 的要点 但这些方法只是 不受支持 它们可以工作 并且必须公开才能从其他包访问
  • C++ 中的多线程图像处理

    我正在开发一个处理不同尺寸图像的程序 许多这些操作从输入读取像素数据并写入单独的输出 例如模糊 这是在每个像素的基础上完成的 此类图像映射对 CPU 的压力很大 我想使用多线程来加快速度 我该怎么做 我正在考虑为每行像素创建一个线程 我有几
  • 错误:自动模块无法与 jlink 一起使用: - Maven 与 JavaFX

    我通过 Maven 存储库选择了 Apache Commons IO JSerialComm 和 Ini4J 库 但是当我尝试通过创建图像时mvn javafx jlink我收到此错误 INFO javafx maven plugin 0
  • 使用汇编语言进行 128 位移位?

    在现代 Intel CPU 酷睿 i7 sandybridge 上进行 128 位移位的最有效方法是什么 类似的代码在我最内层的循环中 u128 a N void xor for int i 0 i lt N i a i a i a i g
  • 创建具有多个表的 rdlc 报告(一对多关系)

    所以 我是 rdlc 的新手 实际上也是一般报告 我有一个表与另一个表具有一对多关系 并且我试图在 rdlc 报告中将它们表示为多个表对于每个项目 注意 这些表最初是使用实体框架代码优先创建的 这是两个表 以及父级 现在 通常如果我只有 Q
  • WPF XAML 中的 My.Resources?

    有没有办法通过 Xaml 访问 My Resources 像这样