سؤال

وأريد لمنع المستخدم من تحقيق أقصى قدر من نموذج Windows إلى ملء الشاشة حتى لقد تعطيل الزر تكبير. ومع ذلك، أريد أن أكون قادرا على أن يكون للمستخدم استعادة "النموذج. عند النقر على زر استعادة أريد أن تظهر مختلف، أصغر، مصغر، النموذج، والتي سوف تظهر لهم زر تكبير الذي سيعود استخدام إلى النموذج الأصلي.

هل هناك طريقة للقيام بذلك؟

وشكرا.

وتحرير: أنت لا تفهم، أنا لا منع المستخدم من تغيير حجم النموذج. ما يحدث هو عندما انقر على زر استعادة، وسوف إخفاء شكل وفتح واحدة جديدة مع أقل الضوابط على ذلك. عند النقر على تحقيق أقصى قدر من شكل أصغر، فإنه سيعود إلى النموذج الأصلي.

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

المحلول

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

لذلك فإن أفضل حل لمشكلتك أعتقد أن يكون لإخفاء تقليل الحالي / تكبير / استعادة الأزرار وإضافة الخاصة بك باستخدام بعض الأوامر ownerdraw أو غيرها.

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

نصائح أخرى

وFWIW، والجواب الصحيح هو لجعل النموذج الخاص بك تغيير حجم بشكل صحيح، والتكيف مع أي حجم النافذة وعدم تقيد المستخدم على ما يبدو على حق <م> الخاص بك عرض في <م> الخاص بك قرار و<م> الخاص بك حجم الخط. نوافذ غير لتغيير الحجم هي واحدة من أكثر الأمور المزعجة واجهت في تطبيق (ويندوز نفسه مليء منهم).

ويمكنك ضبط MaximumSize وMinimumSize وتمكين زر تكبير للحصول على هذا النوع من التأثير.

وكان وضعا مماثلا في الآونة الأخيرة، ومن منظور تصميم واجهة المستخدم، وجدت مثال جيد في Windows Media Player. فإنه يترك تصغير أو تكبير واستعادة أزرار كما هي، ويحتوي على زر منفصل في أسفل يمين ل "التبديل إلى الوضع الاتفاق". وفي مصغرة / الوضع المضغوط، نفس الزر تبديل إلى "تحول إلى الوضع الكامل". مثال آخر هو البديل سكايب، والذي يحتوي على زر إضافي رمز النظام غادر لتوه من مستوى زر تصغير، أن تبديل بين أوضاع مدمجة وقياسية.

و(إذا كان لي شرف، سوف لقد فضلت لوضع هذا بمثابة تعليق لإضافة إلى الإجابة Daemin وقبلت، لا تزال جديدة نسبيا إلى ستاكوفيرفلوو)

و"استعادة" شكل وقع الحدث Resize حيث يمكنك معرفة ما اذا كان النموذج الأصل لم يعد FormWindowState.Maximized. إذا لم يكن كذلك، يمكنك فتح النموذج الطفل وإخفاء الأم.

لعكس هذا، يمكنك "تعظيم" شكل الطفل عن طريق إخفاء (أو التخلص منها)، ثم برنامج الأمم المتحدة للإخفاء وتعيين النموذج الأصل لFormWindowState.Maximized.

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

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