Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
实例化WPF对象并使其可用_Wpf_Resourcedictionary - Fatal编程技术网

实例化WPF对象并使其可用

实例化WPF对象并使其可用,wpf,resourcedictionary,Wpf,Resourcedictionary,下面是一些用于为WPF应用程序实例化ResourceManager的启动代码。如果我想通过xaml获得它,我会把它放在资源字典中吗?使用ObjectProvider?还有别的吗 在WPF应用程序中,是否有理由选择一种对象实例化方法而不是另一种 干杯, 贝里尔 在我看来,如果在应用程序生命周期内不需要替换字典,静态类是最好的解决方案: public static class SampleAppCommonResources { private static ResourceManager

下面是一些用于为WPF应用程序实例化ResourceManager的启动代码。如果我想通过xaml获得它,我会把它放在资源字典中吗?使用ObjectProvider?还有别的吗

在WPF应用程序中,是否有理由选择一种对象实例化方法而不是另一种

干杯,
贝里尔


在我看来,如果在应用程序生命周期内不需要替换字典,静态类是最好的解决方案:

public static class SampleAppCommonResources
{
    private static ResourceManager _Manager;

    public static ResourceManager Manager
    {
        get
        {
            if (_Manager == null)
            {
                var asm = Assembly.Load("SampleApp.Common");
                _Manager = new ResourceManager("SampleApp.Common.Resources.SupportedCultures", asm);
            }

            return _Manager;
        }
    }
}
XAML用法:

<Menu Tag="{x:Static local:SampleAppCommonResources.Manager}">

如果存在多线程环境,
\u管理器
应使用
联锁分配。例如,比较交换

<Menu Tag="{x:Static local:SampleAppCommonResources.Manager}">