RightToLeft propriedade no formulário em C #
-
03-07-2019 - |
Pergunta
Eu quero mover o título do formulário, ícone e fechar, e botões de ajuda do lado esquerdo para o lado direito (alterar o esquema).
Mudei os controles de formulário manualmente para manter imagem de fundo, mas agora eu quero mudar o título do formulário.
Quando eu definir a propriedade RightToLeft como Sim e RightToLeftLayout como true nas propriedades formam o desaparece imagem de fundo, mas ele usa a propriedade "BackColor"
Meu código é o seguinte:
if (_lang == 'Arabic')
{
this.RightToLeft = RightToLeft.Yes;
this.RightToLeftLayout = true;
}
Mas ele mantém imagem botões.
Então, por que é isso?
Solução
Para mais respondeu de Blounty, o MSDN especificações claramente estado que BackgroundImage, opacidade e outros não são suportados quando se utiliza RightToLeftLayout:
http: / /msdn.microsoft.com/en-us/library/system.windows.forms.form.righttoleftlayout(vs.80).aspx :
Proprietário empate não é suportada quando RightToLeftLayout está definido como Sim. Os eventos proprietário empate ainda ocorrerá, mas o comportamento de qualquer código que você autor nestes eventos não está definido. Além disso, BackgroundImage, opacidade, TransparencyKey e os eventos pintura não são suportados.
Outras dicas
BackgroundImage, opacidade, TransparencyKey, e os eventos pintura não são suportados quando RightToLeftLayout está definido para sim.
É muito fácil para substituir a funcionalidade perdida:
protected override void OnPaintBackground(PaintEventArgs e) {
Rectangle rc = new Rectangle(Point.Empty, this.ClientSize);
e.Graphics.DrawImage(Properties.Resources.SampleImage, rc);
}
Você vai precisar fazer um pouco mais de trabalho, se você precisa de telha da imagem.