Tengo una aplicación de winforms que los usuarios deben poder cambiar el idioma en tiempo de ejecución.Cómo cambiar el idioma en tiempo de ejecución sin problemas de diseño
generalizar el interruptor y evitar tener que nombres de control de código lo intentara la siguiente extensión:
internal static void SetLanguage(this Form form, CultureInfo lang)
{
ComponentResourceManager resources = new ComponentResourceManager(form.GetType());
ApplyResourceToControl(resources, form, lang);
resources.ApplyResources(form, "$this", lang);
}
private static void ApplyResourceToControl(ComponentResourceManager resources, Control control, CultureInfo lang)
{
foreach (Control c in control.Controls)
{
ApplyResourceToControl(resources, c, lang);
resources.ApplyResources(c, c.Name, lang);
}
}
Esto cambia todas las cuerdas.
Sin embargo, un efecto secundario de esto es que todo el contenido de la ventana se redimensiona al tamaño de inicio original de Windows, sin importar el tamaño actual.
¿Cómo puedo evitar que el diseño cambie o inicie un nuevo cálculo de disposición?
¡Deseo poder votar más de una vez! – Bosak