ايرو زجاج الحدود على النوافذ المنبثقة في C#

StackOverflow https://stackoverflow.com/questions/853533

  •  21-08-2019
  •  | 
  •  

سؤال

وأود أن إنشاء النوافذ المنبثقة (من حجم ثابت) مثل هذا:

pop-up windows

في التطبيق باستخدام C#.لقد بحثت في NativeWindow ولكن أنا لست متأكدا إذا كان هذا هو الطريق الصحيح للقيام بذلك.أريد نافذة تتصرف تماما مثل التحكم في مستوى الصوت أو "الاتصال" نافذة في ويندوز 7.

كيف يمكنني تحقيق ذلك ؟

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

المحلول

وكنت قادرا على إنجاز هذا:

if (m.Msg == 0x84 /* WM_NCHITTEST */) {
    m.Result = (IntPtr)1;
    return;
}
base.WndProc(ref m);

نصائح أخرى

باستخدام WinForms, إنشاء نموذج وتعيين التالية:

Text = "";
FormBorderStyle = Sizable;
ControlBox = false;
MaximizeBox = false;
MinimizeBox = false;
ShowIcon = false;

تحرير:

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

كما جيف اقترح يمكنك أيضا القيام بذلك في CreateParams:

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        unchecked
        {
            cp.Style |= (int)0x80000000;    // WS_POPUP
            cp.Style |= 0x40000;            // WS_THICKFRAME
        }
        return cp;
    }
}

في كل الحالات, ومع ذلك, سوف لا يزال الحصول على التحجيم المؤشر عندما كنت تحوم فوق الحواف.أنا غير متأكد من كيفية منع ذلك من الحدوث.

في CreateParams الخاص بك تحديد WS_POPUP وWS_THICKFRAME.

لمنع المؤشرات التحجيم على الحدود التعامل مع WM_NCHITTEST وعندما عبر الحدود العودة HTBORDER.

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