【问题标题】:How can I access my ResourceDictionary?如何访问我的 ResourceDictionary?
【发布时间】:2009-12-09 21:48:28
【问题描述】:

我的项目中有一个名为 CustomStyles.xaml 的 ResourceDictionary。它位于一个名为 RD 的子目录中,因此它的位置是 RD/CustomStyles.xaml

我的问题如下:我有一个名为 CustomGroupBox.vbclass-only 文件,并且在 New() 中,我想从资源字典。

由于我没有针对 CustomGroupBox.vb 的相应 XAML,我该怎么做?

附:我想指出 CustomStyles.xaml 的 BuildActionResource 而不是 Content,因此它与项目一起编译,它不输出到构建目录 (\bin)。因此,以下行不通...

Me.Resources.Source = New Uri("RD\CustomStyles.xaml")

【问题讨论】:

    标签: wpf resourcedictionary


    【解决方案1】:

    假设资源字典是在应用程序级别定义的,您似乎需要使用 Application.Current.Resources 来查找您的资源。示例:

    YourControl.Style = CType(Application.Current.Resources("OneOfYourStyles"), Style)
    

    编辑:对于程序集中的资源而不是应用程序,您可以使用 Pack URI Syntax (link) 来访问该资源。它可能看起来像这样:

    Dim u as Uri = New Uri("/" + Me.GetType().Assembly.GetName().Name + ";RD/CustomStyles.xaml"
    

    【讨论】:

    • 听起来好像我曾经做过一次,但我不需要“当前”,因为我在文件本身中。
    • 实际上,这对我不起作用。由于我的文件在程序集中而不是应用程序中,因此出现以下错误:'Current' is not a member of 'MyApplication'
    • 啊,我明白了。我认为您可以使用 Pack URI 语法从程序集中获取资源。用详细信息编辑了我的答案。希望有帮助!
    【解决方案2】:

    您可以从程序集中提取资源。

    这个blog 帖子将告诉你如何做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多