【问题标题】:RightToLeft property in Form in C#C# 窗体中的 RightToLeft 属性
【发布时间】:2008-12-30 12:36:22
【问题描述】:

我想将表单标题、图标和关闭以及帮助按钮从左侧移动到右侧(更改布局)。

我手动移动表单控件以保留背景图像,但现在我想更改表单标题。

当我在表单属性中将 rightToLeft 属性设置为 yes 并将 rightToLeftLayout 设置为 true 时,背景图像会消失,但它使用属性“BackColor”

我的代码如下:

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

但它保留按钮图像。

那是为什么呢?

【问题讨论】:

    标签: c# winforms internationalization


    【解决方案1】:

    为了进一步 Blounty 的回答,MSDN 规范明确指出使用 RightToLeftLayout 时不支持 BackgroundImage、Opacity 和其他:

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

    当 RightToLeftLayout 设置为 Yes 时,不支持所有者绘制。所有者绘制事件仍将发生,但您在这些事件中编写的任何代码的行为都未定义。此外,不支持 BackgroundImage、Opacity、TransparencyKey 和绘画事件。

    【讨论】:

      【解决方案2】:

      RightToLeftLayout设置为yes时,不支持BackgroundImage、Opacity、TransparencyKey和绘画事件。

      【讨论】:

        【解决方案3】:

        替换丢失的功能非常容易:

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

        如果您需要平铺图像,则需要做更多的工作。

        【讨论】:

        • 我应该在哪里添加这个函数的调用以及如何
        • 只需将其粘贴到您的表单中。
        猜你喜欢
        • 1970-01-01
        • 2013-03-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-21
        • 2018-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多