C# 通过双击相关文件打开应用程序时,C本地化不起作用

C# 通过双击相关文件打开应用程序时,C本地化不起作用,c#,.net,wpf,localization,resx,C#,.net,Wpf,Localization,Resx,我使用WIX部署应用程序。这是一个本地化的应用程序,用户显然可以在两种语言之间切换。当用户直接打开应用程序时,这可以正常工作。但是,当用户通过双击扩展名与我的应用程序关联的文件打开应用程序时,情况并非如此。我真的不理解本地化背后的机制,即保存语言选择的地方。当用户间接打开应用程序(即双击打开应用程序的其他文件)时,如果您能提供有关此操作的指导,我将不胜感激 下面是区域性初始化的工作原理 protected override void OnStartup(StartupEventArgs e)

我使用WIX部署应用程序。这是一个本地化的应用程序,用户显然可以在两种语言之间切换。当用户直接打开应用程序时,这可以正常工作。但是,当用户通过双击扩展名与我的应用程序关联的文件打开应用程序时,情况并非如此。我真的不理解本地化背后的机制,即保存语言选择的地方。当用户间接打开应用程序(即双击打开应用程序的其他文件)时,如果您能提供有关此操作的指导,我将不胜感激

下面是区域性初始化的工作原理

 protected override void OnStartup(StartupEventArgs e)
    {

        CultureInfo culture = new CultureInfo(SurfaceApplication2.Properties.Settings.Default.Culture);
        System.Threading.Thread.CurrentThread.CurrentUICulture = culture;
        if (e.Args != null && e.Args.Length > 0)
        {
            this.Properties["ArbitraryArgName"] = e.Args[0];
        }
        base.OnStartup(e);
    }
这是我如何在两种语言之间交替使用的

private void SurfaceButton_Click_6(object sender, RoutedEventArgs e)
    {
        if (Properties.Settings.Default.Culture.ToString().Equals("en-US"))
        {
            SurfaceApplication2.Properties.Settings.Default.Culture = "fr-FR";
            SurfaceApplication2.Properties.Settings.Default.Save();
        }
        else
        {
            SurfaceApplication2.Properties.Settings.Default.Culture = "en-US";
            SurfaceApplication2.Properties.Settings.Default.Save();
        }
    }

如果没有看到您正在使用的框架中的现有代码,就很难指导任何人。。你能展示与你的问题相关的编码部分吗?我不知道要共享什么代码,WIX只是用于部署,它工作正常。我的问题主要是本地化如何工作以及选择的语言值保存在何处,那么当我双击相关文件时是否应传递此信息?您是否有选择语言的选项,或者是否在服务器上的区域性设置中设置了此选项。。?您是如何传递此消息的?您使用的是queryString吗?我只有一个显示其他语言的按钮,当单击它时,它会相应地更改区域性,但这实际上在打开.exe应用程序文件时起作用。但是,使用与我的应用程序关联的.abc文件打开应用程序时,应用程序会打开,但它始终显示默认的英语文化。然后,我会询问第一次使用的控件是什么,以及您是否正在从文件中读取。。可能正在进行一些缓存。。当我们看到你看到的东西时,很难给出答案对不起