Pregunta

Quiero mover el título del formulario, el icono, el cierre y los botones de ayuda del lado izquierdo al lado derecho (cambiar el diseño).

Moví los controles de formulario manualmente para mantener la imagen de fondo, pero ahora quiero cambiar el título del formulario.

Cuando configuro la propiedad rightToLeft en yes y rightToLeftLayout en true en las propiedades del formulario, la imagen de fondo desaparece, pero usa la propiedad " BackColor "

Mi código es el siguiente:

if (_lang == 'Arabic')
{
    this.RightToLeft =  RightToLeft.Yes;
    this.RightToLeftLayout = true;
}

Pero mantiene la imagen de los botones.

Entonces, ¿por qué es eso?

¿Fue útil?

Solución

Para ampliar la respuesta de Blounty, las especificaciones de MSDN establecen claramente que BackgroundImage, Opacity y otros no son compatibles cuando se usa RightToLeftLayout:

http: / /msdn.microsoft.com/en-us/library/system.windows.forms.form.righttoleftlayout(vs.80).aspx :

  

El dibujo del propietario no se admite cuando RightToLeftLayout se establece en Sí. Los eventos de dibujo del propietario seguirán ocurriendo, pero el comportamiento de cualquier código que usted cree en estos eventos no está definido. Además, BackgroundImage, Opacity, TransparencyKey y los eventos de pintura no son compatibles.

Otros consejos

BackgroundImage, Opacity, TransparencyKey y los eventos de pintura no son compatibles cuando RightToLeftLayout se establece en yes.

Es bastante fácil reemplazar la funcionalidad perdida:

protected override void OnPaintBackground(PaintEventArgs e) {
  Rectangle rc = new Rectangle(Point.Empty, this.ClientSize);
  e.Graphics.DrawImage(Properties.Resources.SampleImage, rc);
}

Necesitará hacer un poco más de trabajo si necesita colocar la imagen en mosaico.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top