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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top