سؤال

أعتقد أنني أفتقد شيئًا أساسيًا. من فضلك قل لي ما هو ، إذا استطعت.

لقد طورت تطبيقًا صغيرًا لـ C ++ WinForms باستخدام VS2008. لذلك تم بناؤه باستخدام .NET 3.5 SP1. صندوق التطوير الخاص بي هو Win7 ، إذا كان ذلك مهمًا.

القيمة الافتراضية لخاصية usecompatibletextrengering في عناصر التحكم في WinForms خاطئة في هذا الإصدار من VStudio. وهذا لا ينبغي أن يهم بالنسبة لي ، لا أعتقد. ليس لدي أي نص أو عناصر تحكم مرسومة حسب الطلب.

يبدو التطبيق جيدًا على مربع Win7 الخاص بي.

إذا قمت بتعبئتها (السحب على طول .NET 3.5) وقم بتثبيتها على أحد أجهزة الكمبيوتر المكتبية لـ WinXP ، فإن الأزرار والعلامات لا تبدو جيدة ؛ يتم تقطيع النص فيها.

إذا قمت بتعيين USECOMPATIBLETEXTREDING على TRUE ثم تشغيله على مربعات XP ، فإن النص يناسب الأزرار والعلامات.

سؤالي هو: لماذا؟ يضع التثبيت .NET 3.5 على صناديق XP ، لذلك يجب أن يكون التطبيق قادرًا على العثور على الإصدار المناسب من WinForms واستخدامه ، أليس كذلك؟

يجب أن ألاحظ أنه قبل أن أضع تطبيق + .NET 3.5 على هذه الصناديق ، ليس لديهم .NET على الإطلاق. لا يحصلون على تحديثات Microsoft التلقائية ؛ لدينا Guy Gates البقرات والترقيات.

هذا النوع من الأشياء قد حدث من قبل مع التطبيقات التي أقوم بإنشائها .. تبدو/تعمل بشكل رائع على الآلات الهندسية ، لأننا نحافظ على هذه الأشياء ولديهم في الغالب أشياء محدثة. عندما يتم تشغيلها على صناديق الشركات ، فإنها عادة لا تعمل وتحتاج إلى تثبيت Vcredist.

العودة إلى السؤال المطروح: يبدو النص أفضل مع تعيين UsecompatibleTextrengering على False ، لذلك أفضل الاحتفاظ به بهذه الطريقة ، إذا استطعت. أود أن أفهم ما قد يكون مفقودًا في صناديق XP التي تجعل النص غير مناسب.

شكرًا

س

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

المحلول

من المحتمل أن تكون مشكلة التحجيم ، وقد تحتوي جهاز XP على إعداد DPI مختلف محول الفيديو أو حجم خط نظام مختلف. يتأثر التحجيم بود Autoscalemode للنموذج وما إذا كان "يرث" خاصية خط تحكم الحاوية أم لا. وهو ما يفعله إذا لم تكن خاصية الخط جريئة في نافذة الخصائص.

طريقة واحدة سريعة للتحقق مما إذا كان التحجيم يعمل في النموذج الخاص بك:

protected:
    virtual void OnLoad(EventArgs^ e) override {
        this->Font = gcnew System::Drawing::Font(this->Font->FontFamily, 
            this->Font->SizeInPoints * 125 / 96);
    }

هذا يرفعها. ربما يتم تحجيمها على جهاز XP ، استخدم 96/125.

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