代码之家  ›  专栏  ›  技术社区  ›  Deniz Dogan

WPF:在代码隐藏中引用应用程序范围的资源

  •  12
  • Deniz Dogan  · 技术社区  · 15 年前

    我制作了自己的自定义转换器,它给出了一个字符串,返回 Brush . 现在我可以返回恒定的画笔,如 Brushes.Red 等等,但我真的想使用我在应用程序范围的资源中定义的自己的颜色。

    如何从我自己的自定义转换器类引用应用程序范围的资源?我会用 FindResource 但正如我所说,这是我自己的转换器类,不是窗口或控件。

    2 回复  |  直到 10 年前
        1
  •  21
  •   Reed Copsey    15 年前

    如果这些是在应用程序上定义的,则可以使用 Application.Current.FindResource() 找到他们的名字。

        2
  •  2
  •   Glenn Slayden    10 年前

    添加到Reed的答案中,如果您的资源字典是一个独立的XAML文件,则需要确保它(如Reed所说)“在您的应用程序上定义”。

    App.XAML :

    <Application x:Class="WpfApplication10.App"
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                 StartupUri="MainWindow.xaml">
        <Application.Resources>
            <ResourceDictionary Source="Dictionary1.xaml" />
        </Application.Resources>
    </Application>
    

    字典1.xaml :

    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
        <TextBlock x:Key="k_foo" Text="FOO" />
    </ResourceDictionary>
    

    这个 Build Action 在此词典上,XAML文件可以设置为 Page . 它应该与app.xaml文件在同一目录中。