Eto: إضافة عنصر تحكم رمز علبة

تم إنشاؤها على ٧ مارس ٢٠١٥  ·  33تعليقات  ·  مصدر: picoe/Eto

enhancement

التعليق الأكثر فائدة

تم تنفيذ Wpf:
wpf

ال 33 كومينتر

نعم ، هناك فئة NotifyIcon في إطار عمل .Net ، لكنني لم أتمكن من استخدامها بشكل صحيح.

"لا يكون NotifyIcon العام مرئيًا إذا كنت تقوم بتشغيل سطح مكتب KDE افتراضي ؛
يتطلب لوحة Gnome تسمى Notification Area Applet "
http://www.codeproject.com/Articles/466805/AmberIndicator-a-systray-app-under-Linux

"في openSUSE و Fedora و Ubuntu ، لا يمكن استخدام NotifyIcon"
https://bugzilla.novell.com/show_bug.cgi؟id=590093

"NotifyIcon لا يظهر في systray (تم اختباره على نظام التشغيل: Fedora، Arch. DE: MATE، Cinnamon)"
https://bugzilla.xamarin.com/show_bug.cgi؟id=14976

يجب أن يكون هناك شيء أكثر تكاملاً مع DBus.

الفكرة الأساسية هي إنشاء رمز في منطقة الإعلام
أقل إزعاجًا من ظهور مربع حوار (يقاطع الحوار العمل الحالي ، ويمكن للمستخدم تجاهل الرمز لبعض الوقت). ومع ذلك ، يصعب أيضًا ملاحظة الرمز ، لذلك هناك ميزة تسمح لأيقونات الدرج بانبثاق بالونات الرسائل الصغيرة (هل يمكن أن يحتوي البالون على صور أو تدفقات فيديو من كاميرا باب الدخول؟ أم أنه يعرض السلاسل فقط؟). على وجه الخصوص ، هذا يعني أن البالون يجب أن يختفي بعد مرور بعض الوقت (لكن مدير Rigo يخطئ - يتطلب من المستخدم إغلاق البالون يدويًا)

هناك أيضًا برنامج Workspace Switcher Applet_ الذي سيكون من الجيد التكامل معه من خلال DBus. سيناريو الاستخدام - برامج MDI التي يجب أن تعرض مجموعة مختلفة من المستندات على مساحات عمل مختلفة. لقد قمت بإنشاء طلب ميزة آخر لمساحات العمل - https://github.com/picoe/Eto/issues/409

"علبة نظام جنوم يمكن أن تكون أفقية أو رأسية"

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

NotifyIcon أحادي في منطقة الإعلام

بعض عناوين url:

  1. إرشادات واجهة جنوم البشرية 2.2.3 تكامل سطح المكتب
    https://developer.gnome.org/hig-book/unstable/desktop-notification-area.html.en
  2. مواصفات بروتوكول علبة النظام
    http://standards.freedesktop.org/systemtray-spec/latest/
  3. دليل اتفاقيات الاتصال بين العملاء
    http://www.x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/icccm.html
  4. مواصفات بروتوكول XEmbed (بروتوكول لتضمين عناصر واجهة استخدام مجموعة الأدوات المشتركة)
    http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html
  5. تمديد تلميحات مدير النوافذ
    http://standards.freedesktop.org/wm-spec/wm-spec-latest.html
  6. System.Windows.Forms.NotifyIcon (MSDN)
    https://msdn.microsoft.com/ru-ru/library/system.windows.forms.notifyicon٪28v=vs.110٪29.aspx
  7. تطبيق NotifyIcon أحادي
    https://github.com/mono/mono/blob/ef380e3712af86ef7f8064fab19400523c7510c0/mcs/class/System.Windows.Forms/System.Windows.Forms/NotifyIcon.cs#L38
  8. أمثلة على NotifyIcon أحادي
    https://github.com/mono/winforms/blob/master/notifyicon/swf-notifyicon.cs
    https://github.com/mono/winforms/blob/master/notifyicon/swf-balloon.cs
  9. يستخدم KeePass NotifyIcon:
    http://sourceforge.net/p/keepass/bugs/1212/
  10. Gtk # مثال
    http://www.mono-project.com/docs/gui/gtksharp/widgets/notification-icon/
    Gtk.StatusIcon
    http://askubuntu.com/questions/13197
    https://developer.gnome.org/gtk3/stable/GtkStatusIcon.html

وفقًا لـ GNOME HIG ، هناك طريقتان لإضافة رمز إلى اللوحة:
panels-and-area

أ. صغير اللوحة (هذه على اليسار من "Wanda-the-fish")
ب. رمز منطقة الإعلام (تتم إضافة لوحة الإشعارات نفسها إلى اللوحة كلوحة appet)

تنفذ Mono "رمز منطقة الإعلام" أعلى مواصفات X11 (مباشرة ، بدون Gtk #).

يستخدم mono واجهة XplatUI مع الأساليب
SystrayAdd و SystrayRemove و SystrayChange و SystrayBalloon و SendMessage و SetForegroundWindow
https://github.com/mono/mono/blob/ef380e3712af86ef7f8064fab19400523c7510c0/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUI.cs#L1106-L1128
يتم إعادة توجيه المكالمات إلى الأعضاء

 static XplatUIDriver driver;

وهو من النوع ؟؟؟ لبيئة MATE.

لا أعرف ما الذي يختار السائق الذي يجب استخدامه. من المحتمل أن يكون XplatUIX11 المحدد في هذا السطر:
https://github.com/mono/mono/blob/b7a308f660de8174b64697a422abfc7315d07b8c/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUI.cs#L112

أيقونة صينية هي نافذة

رمز العلبة عبارة عن نافذة يتم تضمينها في علبة النظام.

فئة داخلية NotifyIconWindow: نموذج {... // سطر 57
نافذة NotifyIconWindow الخاصة ؛ // السطر 45
window = new NotifyIconWindow (هذا) ؛ // السطر 389
XplatUI.SystrayAdd (window.Handle ، text ، icon ، out tooltip) ؛ // السطر 524

مشكلة الرسم:
https://bugzilla.novell.com/show_bug.cgi؟id=324237#c13
"في أجهزة 64 بت ، لا يظهر الرمز في الدرج على الإطلاق."

مشكلة الشفافية:
http://lists.ximian.com/pipermail/mono-winforms-list/2007-December/003173.html
سبب المشكلة هو السطر 189
(هذا خطأ غير ثابت بتاريخ 8 سنوات)
ولكن ، المرفق في رسالة القائمة البريدية يحتوي على مثال لرمز التطبيق.
أنظر أيضا
http://standards.freedesktop.org/systemtray-spec/latest/ar01s06.html

مشكلة في إعادة الرسم:
http://mono.1490590.n4.nabble.com/NotifyIcon-and-ContextMenu-redrawing-issues-in-gnome-td1541474.html
https://bugzilla.novell.com/show_bug.cgi؟id=324237
https://bugzilla.novell.com/show_bug.cgi؟id=MONO81668

_NET_SYSTEM_TRAY_S

تم تعريف اصطلاحات تحديدات المديرين في ICCCM (http://www.x.org/releases/X11R7.6/doc/xorg-docs/specs/ICCCM/icccm.html#manager_selections).
علبة النظام هي عميل X يمتلك اختيار مدير خاص على شاشة معينة.
يجب على التطبيق الذي يرغب في توفير رمز لعلبة النظام تحديد موقع علبة النظام أولاً
من خلال طلب نافذة المالك لاختيار المدير.
إذا لم يكن لاختيار المدير مالك ، فيمكن للعملاء استخدام الطريقة الموضحة في ICCCM (مشاهدة رسالة عميل MANAGER) ليتم إخطارهم عند ظهور علبة النظام.

لن تكون نافذة مالك التحديد مماثلة لأي من النوافذ المرئية للمستخدم التي توفرها علبة النظام (بمعنى آخر - ربما لا يكون اختيار المدير هو نفس النافذة المستخدمة لاحتواء أيقونات علبة النظام) ، لأن نافذة مالك التحديد يجب تدميرها عند فقد اختيار المدير.

يجب أن تحصل علبة النظام على اختيار مدير يسمى _NET_SYSTEM_TRAY_Sn ​​، مع استبدال n برقم الشاشة الذي تريد الدرج استخدامه:

  • https://github.com/mono/mono/blob/b7a308f660de8174b64697a422abfc7315d07b8c/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs#L729

XGrabServer(DisplayHandle); SystrayMgrWindow = XGetSelectionOwner(DisplayHandle, _NET_SYSTEM_TRAY_S); XUngrabServer(DisplayHandle); XFlush(DisplayHandle);

  • https://github.com/mono/mono/blob/b7a308f660de8174b64697a422abfc7315d07b8c/mcs/class/System.Windows.Forms/System.Windows.Forms.X11Internal/X11Display.cs#L345

Xlib.XGrabServer (display); IntPtr SystrayMgrWindow = Xlib.XGetSelectionOwner (display, Atoms._NET_SYSTEM_TRAY_S); Xlib.XUngrabServer (display);

SYSTEM_TRAY_REQUEST_DOCK

يتم وصف تنسيق الرسالة هنا:
http://standards.freedesktop.org/systemtray-spec/latest/ar01s04.html
هل من الممكن إرسال رسائل X بدون استخدام Xlib وهي أساس مكتبة XCB
أي مباشرة من كود C # إلى "سلك"؟

https://github.com/mono/mono/blob/b7a308f660de8174b64697a422abfc7315d07b8c/mcs/class/System.Windows.Forms/System.Windows.Forms/XplatUIX11.cs#L6259

    SendNetClientMessage(SystrayMgrWindow, _NET_SYSTEM_TRAY_OPCODE, IntPtr.Zero, (IntPtr)SystrayRequest.SYSTEM_TRAY_REQUEST_DOCK, hwnd.whole_window);

https://github.com/mono/mono/blob/b7a308f660de8174b64697a422abfc7315d07b8c/mcs/class/System.Windows.Forms/System.Windows.Forms.X11Internal/X11Display.cs#L413-L417

    SendNetClientMessage (SystrayMgrWindow,
        Atoms._NET_SYSTEM_TRAY_OPCODE,
        IntPtr.Zero,
        (IntPtr)SystrayRequest.SYSTEM_TRAY_REQUEST_DOCK,
        hwnd.WholeWindow);

رمز لوحة صغيرة

https://en.wikipedia.org/wiki/D-Bus
D-BUS هو نظام اتصال بين العمليات (IPC) يوفر آلية بسيطة لكنها قوية تسمح للتطبيقات بالتحدث مع بعضها البعض وتوصيل المعلومات وطلب الخدمات.
"يمكن أن يصبح D-BUS آلية IPC موحدة وغير مقيدة يستخدمها كل من أجهزة سطح المكتب (GNOME و KDE)"
_لكن ، ولكن ، - ICCCM هي أيضًا عمليات مشتركة وموحدة ومحايد ...
راجع طبقة حدث Kernel - DBus يسمح ناقل واحد مشترك من قبل النظام بأكمله بنشر الأحداث ، من النواة إلى التطبيقات العليا على النظام.
يمكن لأحداث مثل القرص الممتلئ وقائمة انتظار الطابعة فارغة أو حتى طاقة البطارية المنخفضة أن تطفو على مكدس النظام ، وهو متاح لأي تطبيق يهتم به ، مما يسمح للنظام بالاستجابة والتفاعل.

  1. مواصفات D-Bus
    http://dbus.freedesktop.org/doc/dbus-specification.html

  2. مكتبة DBus لـ C # (ليس غلافًا ، خالص C #)
    https://github.com/mono/dbus-sharp

  3. الدليل المرجعي لمكتبة اللوحة الصغيرة
    https://developer.gnome.org/panel-applet/stable/

  4. GnomeGoal هو نقل جميع تطبيقات Gnome الصغيرة إلى واجهة برمجة تطبيقات DBUS الجديدة (من Bonobo).
    https://wiki.gnome.org/Initatives/GnomeGoals/AppletsDbusMigration

هل هناك شيء مثل تطبيقات Ubuntu-panel؟

توافق Gnome- مقابل Unity-panel (الصغير)
http://ubuntu.itsprite.com/ubuntugnome-vs-unity-panel-applet-compatibility/

مؤشرات التطبيق
( آياتانا ، الوحدة ، أوبونتو)

مواصفات مُخبر الحالة (SNI، org.freedesktop.StatusNotifierItem)
http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/
"من المقرر أن يكون بديلاً عن مواصفات علبة نظام سطح المكتب Freedesktop ...
يتم استخدامه في إنتاج شركة KDE Plasma and Unity على الأقل "

  1. مؤشرات لوحة التطبيق
    https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators

دليل مرجعي libappindicator
http://developer.ubuntu.com/api/devel/ubuntu-12.04/c/appindicator/

مؤشرات آياتانا في لوحة جنوم:
https://launchpad.net/indicator-applet

هناك لوحة صغيرة لـ MATE:
https://github.com/mate-desktop/mate-indicator-applet
لعرض المعلومات من التطبيقات المختلفة بشكل متسق في اللوحة.

رمز الإعلام في Ubuntu مع Unity و Mono C # مثال:
http://www.arvydas.co.uk/2012/08/notification-icon-in-ubuntu-with-unity-and-mono-c-sharp-example/

يقوم كل مؤشر بتثبيت ملف صغير في / usr / share / وحدة / مؤشرات تحدد مكان العثور عليها على DBus وكيف يجب عرضها في اللوحة. تتم إدارة عملية المؤشر بواسطة البرنامج الخفي لبدء الجلسة.

مواصفات إخطارات سطح المكتب
http://www.galago-project.org/specs/notification/0.9/index.html
"يمكن وضع الصور في الإشعار ، ولكن يجب أن يتم ذلك بحذر. يجب ألا تتجاوز الصورة أبدًا 200 × 100 ، ولكن يجب اعتبار هذا الحجم أقصى حجم."

https://wiki.ubuntu.com/MessagingMenu/

كيفية جعل لوحة القائمة شفافة:
http://www.linuxandlife.com/2012/05/ubuntu-panel-transparent.html

"يمكن أن تحتوي المؤشرات فقط على تسمية أو رمز في اللوحة
لا يوجد عرض مخصص أو أدوات أخرى "
تستخدم مؤشرات التطبيق حجم رمز ثابتًا يبلغ 22 بكسل.
https://bugs.launchpad.net/ubuntu/+source/indicator-application/+bug/533439
"لا يسمح Libindicator API بتحديد حجم الرمز و
لذلك فإن الاصطلاح هو أن جميع أحجام الرموز هي 22 بكسل. "

تغيير وتحديث رمز الحالة لبرنامج صغير مؤشر قيد التشغيل
http://www.helptouser.com/ubuntu/11162-is-it-possible-to-alter-and-update-the-status-icon-of-a-running-indicator-applet.html

أداة علبة النظام (Plasma / KDE)

  1. تعرض أداة System Tray معلومات النظام والإشعارات والخدمات
    https://userbase.kde.org/Plasma/SystemTray

يتم ترميز العناصر xembed بدقة 22 × 22 بكسل

مواصفات إعلام الحالة ، فئة KStatusNotifierItem
https://github.com/lxde/lxqt/issues/359

مارس 2014/03/04 ، علبة النظام في البلازما التالي
http://blog.martin-graesslin.com/blog/2014/03/system-tray-in-plasma-next/

"لا نريد استثمار الوقت في تنفيذ نظام (xembed) القديم لـ Plasma Next"
"تستخدم معظم تطبيقات GTK + أيضًا مكتبة appindicator لتكامل الوحدة ، لذا فهي تعمل بالطريقة التي نريدها"
"على الرغم من أن الأمر سيستغرق حتى Qt 5.4 حتى تعمل الميزة بشكل صحيح."
"من الممكن أن تكون هناك تطبيقات لا تزال تستخدم البروتوكول القديم وسيتم تعطيلها."

علبة رسائل جنوم شل

https://wiki.gnome.org/Design/OS/MessageTray
"صفحات تصميم علبة الرسائل قديمة ، ويتم الاحتفاظ بها للأغراض المرجعية فقط. للحصول على تصميمات محدثة ، راجع صفحة الإخطارات"
https://wiki.gnome.org/Design/OS/Notifications

يوجد أيضًا "تطبيق صغير للمؤشر" ثلاثي الأطراف لـ Gnome 3 في مستودعات Ubuntu:
https://code.launchpad.net/~jconti/indicator-applet/gnome3

http://live.gnome.org/GnomeShell/Extensions

تسمح GNOME Shell بتخصيص محدود للغاية (حسب التصميم) ولا تعد علبة النظام واحدة من تلك المجالات. في الواقع ، حقيقة وجوده هي فقط لدعم بعض التطبيقات القديمة.

"يُنظر إلى رموز نظام Systray على أنها مصدر شائع للإلهاء ، والذي يريد المطورون التخلص منه."

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

http://worldofgnome.org/shell-new-notifications-goodbye-message-tray/
2014-01-05 ، "يخطط مطورو جنوم لإجراء بعض التغييرات المهمة نحو نظام إشعارات جديد تمامًا."

https://blogs.gnome.org/aday/2014/06/18/a-notifications-update/
قدم Fedora 22 (جنوم 3.16) شريط الأيقونات القديم القابل للتوسيع في الركن الأيسر السفلي من الشاشة:

يتم عرض رموز "العلبة" القديمة في "الدرج" الذي يستخدم الإخفاء التلقائي في الزاوية اليسرى السفلية من الشاشة.
ملاحظات إصدار جنوم 3.16

https://github.com/gnome-design-team/gnome-mockups/tree/master/notifications

gnome-design أو قنوات # gnome-shell IRC

https://developer.gnome.org/notification-spec/

WingPanel من نظام التشغيل الابتدائي

لوحة علوية أنيقة تحتوي على مؤشرات وتنتج مشغل تطبيق

نظام التشغيل الأولي الذي يعمل على إهمال مؤشرات آياتانا:
https://github.com/dyson/indicator-workspaces/issues/3

تتمتع هذه المؤشرات الجديدة بقدر أكبر من الحرية (أنت لست مقيدًا بتصميم قائمة ، يمكن أن يكون لديك أي عنصر واجهة مستخدم فيها الآن) ، لذلك قد يكون هذا شيئًا تبحث عنه. ؛) ستظل مؤشرات Ayatana مدعومة تقنيًا

أحد الأمثلة على العمل مع اللوحات هو تطبيق Workrave.
لديها فئة لكل نوع من اللوحات.
هناك https://github.com/rcaelers/workrave/tree/7cb9aef971f21c9a473146f9b72693b86a4a76f6/frontend/applets هي
"قرفة" ، "شائع" ، "قشرة جنوم" ، "جنوم 2" ، "جنوم 3" ، "مؤشر" ، "مات" ، "win32" ، "xfce"

هل يمكن لأي شخص أن يجيب على أسئلتي البسيطة؟

1) هل يمكننا الآن إنشاء رموز صينية باستخدام Eto؟
2) ما هو نظام التشغيل المدعوم؟
3) أين يمكنني قراءة ذلك؟ ربما اسم الفصل؟

أخبار سيئة ، لا يوجد دعم حتى الآن ، أخبار جيدة ، كنت سأقوم بتنفيذ هذا لنظامي Linux و Windows خلال نهاية هذا الأسبوع :)

رائع حقا! :) هل الدمج فقط مطلوب الآن؟

و MAC OS؟

لا أعتقد أننا بحاجة إلى محاكاة العلبة في Android :)

رائع حقا! :) هل الدمج فقط مطلوب الآن؟

ما زلت لم أبدأ العمل عليها ... ومع ذلك فأنا أعرف ما يجب القيام به وكان علي أن أفعل # 714 مسبقًا.

و MAC OS؟

سيحتاج شخص آخر إلى تنفيذه لنظام MacOS ، نظام MacOS الوحيد الذي أملكه موجود على VirtualBox ، وهو بطيء مثل الجحيم.

أوشك إصدار Linux Gtk على الانتهاء: د

indicator

عمل جيد! :)

هل هي نافذة عادية أو نافذة منبثقة ذات محتوى محدود مسموح به؟

عمل جيد! :)

هل هي نافذة عادية أو نافذة منبثقة ذات محتوى محدود مسموح به؟

هذه هي الطريقة التي تظهر بها قائمة السياق في جنوم بامتداد libappindicator على: P.

بدون الامتدادات الغريبة الموجودة على نظامي ، يبدو الأمر كما يلي:

withoutextension

هذه هي الطريقة التي تظهر بها قائمة السياق في جنوم بامتداد libappindicator على: P.

لست متأكدًا من فهمي ... لقد ذكرت ما إذا كان من الممكن عرض أي محتوى هناك على سبيل المثال صورة بدلاً من Hello World؟ على سبيل المثال في Windows ، لا يمكننا القيام بذلك (فقط عناصر القائمة التي تحتوي على أيقونات) .. للحصول على ذلك يتعين علينا تنفيذ النافذة الخاصة وعرضها بالقرب من أيقونة العلبة أو النقر بالماوس. بالإضافة إلى ذلك ، سيتعين علينا ترجمة الإحداثيات لأن رمز العلبة (الذي سيتم استخدامه على الأرجح) هو جزء من Windows.Forms ليس WPF.

مرة أخرى ... إنها مجرد طريقة ظهور قائمة السياق على نظامي ... انظر إلى لقطة الشاشة الثانية ، إنها تعرض نفس الشيء تمامًا باستثناء جزء من عناصر التخصيص الخاصة بي معطلة.

hardhub afaik ، يمكنك وضع عناصر تحكم مخصصة في عنصر قائمة باستخدام winforms (و macOS). لا أعرف ما إذا كان هذا سيعمل على GTK # أم لا.

cwensley ، عليّ فقط الإبلاغ عن شيء سلبي واحد حول هذا ، لا يسمح appindicator بتحميل الرموز من الذاكرة ... لذلك اضطررت إلى جعل واجهة برمجة تطبيقات Eto الخاصة بـ TrayIcon تقوم بتحميلها من مسار ملف فعلي ...

@ cra0zy حسنا هذا هو مبتذل جدا. ربما يمكننا الكتابة إلى ملف مؤقت أو شيء من هذا القبيل ..

cwensley ،

انا اعني ذلك:
https://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon (v = 110) .aspx
https://msdn.microsoft.com/en-us/library/system.windows.forms.menuitem (v = 110) .aspx

يمكنك فقط وضع النص والرمز هناك ...

@ cra0zy حسنا هذا هو مبتذل جدا. ربما يمكننا الكتابة إلى ملف مؤقت أو شيء من هذا القبيل ..

هذا ما فعلته بالفعل.

hardhub آه صحيح ، إنه يستخدم MenuItem ، وليس ToolStripMenuItem .. آه. في كلتا الحالتين ، يمكننا فقط إنشاء وظيفة نافذة مخصصة في نظام windows الأساسي حتى لا يتم تنفيذها يدويًا عندما تريد استخدامها.

هل تتحدثون يا رفاق عن نافذة انقر بزر الماوس الأيسر مثل خلاط الصوت في Windows 7؟ أنا مشوشة قليلا...

على أي حال ، ما يلي هو هيكل API:
ج #
منطقي عام مرئي {get؛ تعيين؛ }

عنوان السلسلة العامة {get؛ تعيين؛ }

تم تفعيل الحدث العام {get؛ تعيين؛ }

SetMenu العامة الباطلة (قائمة ContextMenu) ؛

SetIcon العامة الفارغة (أيقونة أيقونة) ؛

عرض الفراغ العام () ؛

إخفاء الفراغ العام ()؛
""

@ cra0zy ، أعتقد أن النقر بزر الماوس الأيسر يفتح نافذة مخصصة. لقد كتبت عن النقر بزر الماوس الأيمن. على الأقل لك مثال مع عنصر "إنهاء" يبدو مثل قائمة النقر بزر الماوس الأيمن.

تضمين التغريدة

يمكننا محاولة استخدام خاصية ContextMenuStrip ... لكنني أعتقد أنها لن تكون قادرة على إضافة أي شيء مخصص ...
https://msdn.microsoft.com/en-us/library/system.windows.forms.contextmenustrip (v = 110) .aspx

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

تم تنفيذ WinForms:
winforms

تم تنفيذ Gtk Mac / Windows:
2

تم تنفيذ Wpf:
wpf

العلاقات العامة تصل: # 731

cwensley يمكن إغلاق هذا.

@ cra0zy ما زلت بحاجة إلى عمل منفذ Mac ولكن هذا مغطى بالرقم 750 #

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات

القضايا ذات الصلة

Krakean picture Krakean  ·  6تعليقات

azunyuuuuuuu picture azunyuuuuuuu  ·  23تعليقات

Serg-Norseman picture Serg-Norseman  ·  5تعليقات

katatunix picture katatunix  ·  12تعليقات

voronoipotato picture voronoipotato  ·  16تعليقات