Domanda

Voglio spostare il titolo del modulo, l'icona e chiudere e aiutare i pulsanti da sinistra a destra (cambiare il layout).

Ho spostato manualmente i controlli del modulo per mantenere l'immagine di sfondo, ma ora voglio cambiare il titolo del modulo.

Quando imposto la proprietà rightToLeft su yes e rightToLeftLayout su true nelle proprietà del modulo, l'immagine di sfondo scompare, ma utilizza la proprietà " BackColor "

Il mio codice è il seguente:

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

Ma mantiene l'immagine dei pulsanti.

Allora perché?

È stato utile?

Soluzione

Per ulteriore risposta di Blounty, le specifiche MSDN affermano chiaramente che BackgroundImage, Opacity e altri non sono supportati quando si utilizza RightToLeftLayout:

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

  

L'estrazione del proprietario non è supportata quando RightToLeftLayout è impostato su Sì. Gli eventi di disegno del proprietario continueranno a verificarsi, ma il comportamento di qualsiasi codice creato in questi eventi non è definito. Inoltre, BackgroundImage, Opacity, TransparencyKey e gli eventi di pittura non sono supportati.

Altri suggerimenti

BackgroundImage, Opacity, TransparencyKey e gli eventi di pittura non sono supportati quando RightToLeftLayout è impostato su yes.

È abbastanza facile sostituire la funzionalità persa:

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

Dovrai fare un po 'più di lavoro se devi affiancare l'immagine.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top