TGViewer
برنامه نویس برنامه نویس @barnamenevis_net · 1.24K subscribers
Post #301 894
مسیج باکس فارسی در Windows Forms و WPF تحت ‎.Net Core

صورت مسئله:
قدیم ها وقتی تو ‎.Net Framework برنامه های دسکتاپ می نوشتیم برای نمایش پیام های فارسی بجای MessageBox.Show از یک کلاس معادل بنام RtlMessageBox (که نمی دونم کی ساخته بودش، از اینترنت پیدا کرده بودم) استفاده می کردم.
اخیرا سعی کردم تو یک پروژه WPF تحت ‎.Net Core از اون کلاس استفاده کنم، اما متوجه شدم بخاطر عوض شدن مکانیسم های Hook در دات نت کور پیام های دکمه های Yes و No و OK و ... دیگه فارسی نمیشه، همچنین اون کلاس بخاطر استفاده از API های قدیمی ویندوز، تو Windows 10 و 11 همچنان دیالوگ رو با استفاده از تم قدیمی ویندوز (شبیه ویندوز 2000) نشون میده.

راه حل:
برای حل مشکلات فوق برای نوشتن ورژن سازگار با ویندوزهای جدید و سازگاری کامل با دات نت کور کلاس فوق اقدام کردم. نتیجه کار شد یک ورژن جدید از RtlMessageBox که قابلیت های زیر رو داره:
• سازگاری کامل با نحوه فراخوانی MessageBox.Show ، بنابراین کافیه تو کل برنامه تون عبارت MessageBox رو با RtlMessageBox جستجو و جایگزین کنید.
• امکان مشخص کردن فونت سفارشی فارسی و مشخص کردن سایز فونت. این فونت در دکمه ها و متن پیام استفاده خواهد شد. این قابلیت در کلاس اصلی MessageBox وجود نداره.
• امکان مشخص کردن عنوان دلخواه برای دکمه های دیالوگ باکس.
• نمایش راست به چپ دیالوگ بدون بی ریخت به نظر رسیدن رابط کاربری.
• اعمال شدن خودکار Theme برنامه روی دیالوگ باکس در WPF.
• استفاده از آیکون های مدرن ویندوز.
• قابل استفاده در دات نت کور ورژن 6 تا 9.

نکات:
• ورژن قابل استفاده در Windows Forms و WPF بصورت جداگانه موجود است.
• پکیج های Nuget این کتابخانه ها موجود است (کافیه تو Nuget تو ویژوال استودیو عبارت Barnamenevis.Net.RtlMessageBox رو جستجو کنید). پکیج های برای دات نت کور 6 تا 9 موجوده، پشتیبانی از دات نت کور 10 هم بعد از انتشارش اضافه خواهد شد.
• راهنمای کامل استفاده در صفحه گیت هاب و پروژه های دمو موجود است.

آدرس ریپو در گیت هاب:
https://github.com/delphiassistant/Barnamenevis.Net.Tools

آدرس پکیج نوگت برای WPF:
https://www.nuget.org/packages/Barnamenevis.Net.RtlMessageBox.Wpf

آدرس پکیج نوگت برای Windows Forms:
https://www.nuget.org/packages/Barnamenevis.Net.RtlMessageBox.WindowsForms

خوشحال می شوم نظرات تون درباره این مطلب رو بشنوم. اگر هم مشکلی در عملکرد اینها مشاهده کردید یا درخواست افزودن قابلیت به این کتابخانه ها دارید اطلاع دهید.
GitHub GitHub - delphiassistant/Barnamenevis.Net.Tools Contribute to delphiassistant/Barnamenevis.Net.Tools development by creating an account on GitHub.
  • 👍 5
  • ❤ 4
  • 🤩 2
More from @barnamenevis_net
  1. Nov 2, 2025معرفی کتابخانه Flyout Menu در طراحی رابط کاربری، همیشه ساخت یک منوی چندسطحی زیبا و در عین…
  2. Oct 1, 2025معرفی کتابخانه Multi-Calendar DatePicker در یک پروژه در ASP.NET Core نیاز به یک کتابخانه D…
  3. May 15, 2025خدمات ثبت شركت، تمديد شركت و تعدیل شرکت صدور اجاره نامه، گواهینامه افتتاح حساب بانكى ثبت ك…
  4. Aug 27, 2023دوره آموزش میکروسرویس ها در دات نت 8 (حضوری/آنلاین) با 20% تخفیف در این دوره آموزشی، چگونگ…
  5. Jun 22, 2023لیست مطالب کانال (این لیست بتدریج به روزتر خواهد شد): 🔹پردرآمدترین کشورها برای مهندسین نر…
  6. May 23, 2023🔔 آموزش + مهاجرت شغلی برنامه نویس ها با کمترین هزینه 🔹 دریافت ویزای کاری از تمام کشورهای…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →