RightToLeft Eigenschaft in Formular in C #
-
03-07-2019 - |
Frage
Ich möchte die Form Titel, Symbol und in der Nähe bewegen und helfen Tasten von der linken zur rechten Seite (das Layout ändern).
Ich zog das Formular-Steuerelemente manuell Hintergrundbild zu halten, aber jetzt will ich das Formular Titel ändern.
Wenn ich rightToLeft Eigenschaft auf Ja und RightToLeftLayout auf true in den Formulareigenschaften das Hintergrundbild verschwindet gesetzt, aber es nutzt die Eigenschaft „Backcolor“
Mein Code ist wie folgt:
if (_lang == 'Arabic')
{
this.RightToLeft = RightToLeft.Yes;
this.RightToLeftLayout = true;
}
Aber es hält Tasten Bild.
Also, warum ist denn das?
Lösung
Um Blounty Antwort weiter, die MSDN-Spezifikationen klar sagen, dass Background, Opazität und andere werden nicht unterstützt, wenn mit RightToLeftLayout:
http: / /msdn.microsoft.com/en-us/library/system.windows.forms.form.righttoleftlayout(vs.80).aspx :
Besitzer Unentschieden nicht unterstützt, wenn RightToLeftLayout auf Ja gesetzt ist. Der Besitzer zeichnet Ereignisse werden immer noch auftreten, aber das Verhalten von Code, den Sie in diesem Ereignisse Autor ist nicht definiert. Zusätzlich Background, Opazität, TransparencyKey und die Malerei Ereignisse werden nicht unterstützt.
Andere Tipps
Background, Opazität, TransparencyKey und die Malerei Ereignisse werden nicht unterstützt, wenn RightToLeftLayout auf yes gesetzt ist.
Es ist ziemlich einfach, die verlorene Funktionalität zu ersetzen:
protected override void OnPaintBackground(PaintEventArgs e) {
Rectangle rc = new Rectangle(Point.Empty, this.ClientSize);
e.Graphics.DrawImage(Properties.Resources.SampleImage, rc);
}
Sie müssen ein bisschen mehr Arbeit tun, wenn Sie das Bild Kachel benötigen.