Свойство RightToLeft в форме в C # - PullRequest
2 голосов
/ 30 декабря 2008

Я хочу переместить заголовок формы, значок и закрыть, а также кнопки справки с левой стороны на правую сторону (изменить макет).

Я переместил элементы управления формы вручную, чтобы сохранить фоновое изображение, но теперь я хочу изменить заголовок формы.

Когда я устанавливаю для свойства rightToLeft значение yes и для свойства rightToLeftLayout значение true в свойствах формы, фоновое изображение исчезает, но оно использует свойство "BackColor"

Мой код выглядит следующим образом:

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

Но он сохраняет изображение кнопок.

Так почему это так?

Ответы [ 3 ]

4 голосов
/ 30 декабря 2008

Для дальнейшего ответа Blounty в спецификациях MSDN четко указано, что BackgroundImage, Opacity и другие не поддерживаются при использовании RightToLeftLayout:

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

Отрисовка владельца не поддерживается, если для RightToLeftLayout установлено значение Yes. События рисования владельца все равно будут происходить, но поведение любого кода, который вы создаете в этих событиях, не определено. Кроме того, BackgroundImage, Opacity, TransparencyKey и события рисования не поддерживаются.

2 голосов
/ 30 декабря 2008

BackgroundImage, Opacity, TransparencyKey и события рисования не поддерживаются, если для RightToLeftLayout установлено значение yes.

1 голос
/ 30 декабря 2008

Довольно легко заменить утраченную функциональность:

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

Вам нужно будет проделать немного больше работы, если вам нужно выложить изображение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...