在运行时在wpf中将现有项添加到解决方案中

时间:2013-05-03 09:36:41

标签: wpf

我在运行时在WPF创建资源文件。

它正在资源文件夹中创建并显示,但即​​使在刷新文件夹后也无法在解决方案中显示。

当我手动(add exsiting item)时,它会被添加。

如何在创建解决方案时将其添加到解决方案中?

我的代码是:

public void LaguageCulture(string languageid)
{
    try
    {
        SqlParameter[] param = new SqlParameter[1];
        param[0] = new SqlParameter("@lagid", languageid);
        //languageid =3 
        var dsResources = SqlHelper.ExecuteDataset(_objSqlConnection, "sproc_GetResourceNames", param);
        string culturecode = string.Empty;
        if (dsResources.Tables[1].Rows.Count > 0)
        {
            culturecode = dsResources.Tables[1].Rows[0][0].ToString();
        }
        FileInfo file = new FileInfo(System.Windows.Forms.Application.StartupPath.Replace("\\bin\\Debug", "") + "\\Resources\\EnglishResource." + culturecode + ".resx"); // Culture code is en-US 
        if (!file.Exists)
        {
            var resx = new ResXResourceWriter(System.Windows.Forms.Application.StartupPath.Replace("\\bin\\Debug", "") + "\\Resources\\EnglishResource." + culturecode + ".resx");
            if (dsResources.Tables[0].Rows.Count > 0)
            {
                for (var i = 0; i < dsResources.Tables[0].Rows.Count; i++)
                {
                    resx.AddResource(dsResources.Tables[0].Rows["ResourceName"].ToString(), dsResources.Tables[0].Rows["ResourceValue"].ToString());
                }
            }
            resx.Generate();
            //Application.Current.Resources.Add(culturecode + ".resx", resx); 
            resx.Close();
        }
        System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culturecode);
        System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(culturecode);
    }
    catch (Exception)
    {
        throw;
    }
}

1 个答案:

答案 0 :(得分:0)

您必须以编程方式在.csproj中添加一些行(这是一个xml文件)。

可能是这样的:

<EmbeddedResource Include="Resources\EnglishResource.en-US.resx">
  <Generator>PublicResXFileCodeGenerator</Generator>
</EmbeddedResource>