سؤال

أريد الانتقال شكل العنوان ، رمز وإغلاق أزرار مساعدة من الجانب الأيسر إلى الجانب الأيمن (تغيير تخطيط).

انتقلت عناصر تحكم النموذج يدويا للحفاظ على صورة الخلفية ولكن الآن أريد تغيير عنوان النموذج.

عند تعيين الخاصية rightToLeft إلى " نعم " و rightToLeftLayout إلى true في شكل خصائص صورة الخلفية يختفي ولكنه يستخدم خاصية "BackColor"

قانون بلدي على النحو التالي:

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

ولكن يبقى أزرار الصورة.

ذلك هو السبب في ذلك ؟

هل كانت مفيدة؟

المحلول

لمزيد من Blounty الجواب ، MSDN المواصفات بوضوح أن BackgroundImage ، والتعتيم وغيرها ليست معتمدة عند استخدام RightToLeftLayout:

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.righttoleftlayout(مقابل 80).aspx:

مالك رسم غير معتمد عند RightToLeftLayout يتم تعيين إلى "نعم".صاحب رسم الأحداث لا تزال تحدث ، ولكن سلوك لأي رمز المؤلف في هذه الأحداث لم يتم تعريف.بالإضافة إلى ذلك ، BackgroundImage ، والتعتيم ، TransparencyKey و اللوحة الأحداث غير معتمدة.

نصائح أخرى

BackgroundImage ، والتعتيم ، TransparencyKey و اللوحة الأحداث غير معتمدة عند RightToLeftLayout يتم تعيين إلى "نعم".

فمن السهل جدا استبدال فقدت وظيفة:

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

سوف تحتاج إلى القيام به العمل أكثر قليلا إذا كنت بحاجة إلى البلاط الصورة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top