چگونه در C# WPF ویژگی یک عنصر را بین دو DynamicResource جابجا کنیم؟

فرض کنید داخل پرونده Xaml تان دو SolidColorBrush تنظیم کرده اید و قصد دارید در طول برنامه سی شارپتان رنگ پس زمینه یک عنصر را بین آن دو جابجا کنید؛ اگر در اینترنت مقداری بگردید، اکثرا این کد را به شما پیشنهاد می کنند:

اما این کد باعث می گردد تا مقدار آن SolidColorBrush تنها در لحظه محاسبه شده و تنظیم گردد؛ در حالی که ما نیاز داریم تا اگر مقدار SolidColorBrush را تغییر دادیم رنگ اجزای استفاده کننده از آن نیز به صورت خودکار تغییر کنند.

پس از مقداری جستجو به کد های زیر رسیدم:

در XAML:

در C#:

چگونه در URI از Resource پروژه آدرس دهیم؟

گاهی اوقات قصد داریم تا پرونده ای را از یک نشانی خشک فراخوانی کنیم (مثل C:/Folder/File.jpg)؛ گاهی اوقات پرونده ما در کنار فایل exe برنامه قرار گرفته که آن هم روش خودش را دارد اما گاهی اوقات می خواهیم از پرونده هایی که در خود سلوشن قرار داده ایم استفاده کنیم.
کد زیر را چندین بار به دست آورده بودم اما فراموش می کردم؛ با شما به اشتراک می گذارم تا خودم هم فراموش نکنم:

ویرایش ۲۳ خرداد ۱۴۰۱: اگر در اسم پروژه از فاصله استفاده شده باشد آن GetName کار نمی‌کند! فعلا اسم پروژه را دستی وارد کردم…

سریال فعالسازی ویژوال استدیو 2019

ویژوال استدیو 2019 پس از چندین ماه در دوم آوریل 2019 به صورت رسمی منتشر شد و هم اکنون قابل دریافت می باشد.
جهت فعالسازی نسخه های Professional و Enterprise آن می توانید از شماره سریال های زیر استفاده نمایید:

Visual Studio 2019 Enterprise
BF8Y8-GN2QH-T84XB-QVY3B-RC4DF

Visual Studio 2019 Professional
NYWVH-HT4XC-R2WYW-9Y3CM-X4V3Y

بروزرسانی:

Visual Studio 2022 Enterprise
VHF9H-NXBBB-638P6-6JHCY-88JWH

Visual Studio 2022 Professional
TD244-P4NB7-YQ6XK-Y8MMM-YWV2J

شکن – نسخه ویندوز (غیررسمی)

اگر مقداری درگیر فعالیت های کامپیوتری شده باشید (غیر از بازی کردن! ?) نیازی به گفتن نیست که بسیاری از سرویس های مطرح اینترنتی و یا وبسایت های آنها اجازه ی ورود به ما نمی دهند و به اصطلاح تحریممان کرده اند! بعضی سایت ها مانند اوراکل یا ادوبی که حتی زحمت نکشیده اند صفحه ی اعلام عدم اجازه عبور درست کنند و کلا صفحه ی سفید نشانمان می دهند!
خلاصه، برای دور زدن تحریم ها هر کسی کاری می کند؛ یکی سرور خارجی می خرد، یکی چیز پی ان(!)، یکی قند-#شکن! و…
اما جدیدا با سرویسی آشنا شده ام که علاوه بر رایگان بودن، سرعت بسیار بالایی هم دارد انگار که اصلا دور زدنی در کار نیست!


شکن، نام این سرویس جالب ایرانی است که تنها با تنظیم دو آدرس DNS در تمامی دستگاه ها فعال شده و در آدرس های خاصی که از پیش گزارش شده اند تحریم را مثل آب خوردن دور می زند! نکته مثبت آن این است که غیر از تنظیم DNS احتیاج به تنظیم پرا-کسی در نرم افزار های همان سرویس های تحریم کننده ندارد (مثل نرم افزار مدیریت اس دی کی اندروید)…

چند وقتی بود که دنبال ساخت نرم افزاری برای تنظیم و پاک کردن DNS های شکن بودم. هرچند تنظیم DNS کار ساده ایست اما هربار تنظیم و برداشتن آن زمان‌بر است؛ خصوصا که مسیر بسیار بد دستی هم دارد (?) و میانبری هم با جستجو در استارتِ ویندوز10 بالا نمی‌آید. به همین خاطر دست به کار شدم تا نرم افزاری بسازم که با استفاده از C# و رابط کاربری WPF امکان تغییر DNS را به کاربر بدهد.

در این نرم افزار که به رایگان در گیت هاب منتشر شده است (و می‌تواند برای افرادی که به دنبال کد های تغییر dns در ویندوز به وسیله C# wpf هستند بسیار مفید باشد)، می‌توانید با فشردن یک کلید DNS ویندوز خود را بر روی آدرس های شکن قرار داده با با فشردن دوباره همان کلید آنها را پاک کرده و به حالت اول برگردانید.

دریافت نرم افزار از گیت هاب

سورس برنامه در گیت هاب

صفحه ی برنامه در آزمایشگاه ابر

 

روبی ویتا – برنامه نویسی برای کودکان

روبی ویتا

یادم می آید از زمانی که روی ربات روبی کار می‌کردم به فکر ساخت نسخه ای کودکانه برای آن بودم؛ شایدم هم نه، از قبل تر! زمانی که آقای نیرومند به من گفت:

…خلاصه، می‌خوام بگم اون زحمتی که می‌خوای بکشی شاید کاربرد زیادی نداشته باشه.

اما چیزی که پیشنهاد می‌کنم انجام بدی، طراحی Robi هست که در مطلب اخیر صحبت کردم.

اگر بتونی اون رو در حد یک روبات ۱۰ سانتی متری کوچیکش کنی و چیزی شبیه به عروسک نمادِ آندروید کنی، عالی می‌شه.

به خصوص اگر بتونی حداقل در مراحل بعد یک ماژول Wi-Fi هم روش بذاری که بتونه بی‌سیم دستور بگیره، دیگه فوق‌العاده می‌شه.

ما می‌خواهیم Robi روباتی باشه که از یک خط فرمان، دستوراتی رو که ضمیمه کردم (و منتشرش نکن) دریافت و اجرا کنه.

می‌تونی این پروژه رو پیگیری کنی؟

و من در جوابش فرستاده ام:

برای روبی هم، راستش من خودم برای خودم داشتم روی یه برد ایرانی آردوینویی کار میکردم با یه محیط برنامه نویسی شبیه اسکرچ به نام ماجراجو؛ ولی روبی هم چیز خوبیه و میتونم روش کار کنم.

چند وقتی بود که در فکر ساخت یک محیط برنامه نویسی ساده شده بودم؛ شبیه اسکرچ کودکان؛ با الهام از خط زمانِ برنامه های تدوین فیلم که تکه ها در یک خطر قرار می گیرند و به ترتیب اجرا می شوند. نمونه ی اولیه خیلی افتضاح بود 😀 به قدری که هنوز خط زمان را تکمیل نکرده پاکش کردم!

در حین کار روی نسخه بتای روبی، روی رابط کاربری نسخه ای خاص از محیط برنامه نویسی ماجراجو (محیطی که با سیشارپ برای برنامه نویسی و اجرای دستورات ساده و مخصوص روبی روی آن به وسیله بلوتوث ساخته بودم) که مناسب برای کودکان باشد. با الهام از سادگی دستورات ماجراجو، دستورات ماجراجو کودکان (نسخه پرتقال 😁) هم ساده تنظیم شد و برای آنکه هر دستور برای کودکان به راحتی قابل شناسایی باشند از کلمات در آن استفاده نشد (این اتفاق برای استفاده از بازی در زبان های دیگر هم این مزیت را به بار می آورد).

این طرحی بود که 30 شهریور 96 (یک روز مانده به محرم) موقع تحویل روبی به آقای نیرومند نشان دادم و خوششان آمد:

 

 

بعد از اتمام روبی بتا کار روی ساخت نسخه کودکان آن شروع شد؛ برآورد اولیه این بود که بازی تا بهمن ماه به انتشار برسد. طراحی نوار زمانی که چینه ها را روی آن بتوان چید کار سختی بود که تابحال انجام نداده بودم و چالش من در طراحی بازی بود…

ادامه‌ی مطلب

جلسه کاری!

جلسه کاری امشب؛ در مورد فلسفه آزمایشگاه ابر حرف زدیم و حرف زدیم و حرف زدیم!

احتیاج داشتم تا در مورد آینده و برنامه های آزمایشگاه ابر صحبت و مشورت کنم. اول قرار شد بریم کتابستان رضوی و ضمن استفاده از ۳۰ درصد تخفیف امروز کتابی بخریم و صحبتی بکنیم؛ اما در عمل دو تا از صندلی هاشون رو کنار هم گذاشتیم و انقدر حرف زدیم که دیدیم دارن کرکره هارو میدن پایین (بیچاره اون بنده خدایی که اجازه داد بشینیم حرف بزنیم. آخرش اومد شکلات تعارف کرد 😂).

و در ادامه جلسه با صرف یکی و نصفی ساندویچ به پایان رسید. این اون نصفیشه 😂☝️.

امید هست…

آن یکی که فازش مشخص نیست!
این یکی به بهانه ی جمع کردن سروصدای بچه ها هر بار می آید زیرزمین با آن یکی های دیگر انواع بازی های اندرویدی!
آن یکی که باید خدا را شکر کنیم که یک جا نشسته و کاری نکرده. هر دو دقیقه هم دعا کنیم به چیزی دست نزند که زحمت ما بیشتر نشود!
آن یکی همین که در مجلس حضور به هم رسانده مایع خوشحالی و قوت قلب ماست! (بگذریم که چقدر قبلش قلبمان را به تپش در آورده)
این یکی که #گالری
و من اینجا ایستادم و با ظاهر بی تفاوت حرص می خورم…

عجب روضه ای داریم ما! عجب ذکر مصیبتی! عجب همه به همین خاطر اومدن!
اما با این حال به همین روضه ها امید دارم…

پ.ن۱: تجربه م میگه یک روضه ی بد، بهتر از روضه نگرفتن است…
پ.ن۲: وسط نوشتن این یکی میگه فکر کنم همه ثواب روضه برای منه چون من این دو تا شیطنت رو اینجا نشوندم ساکت کردم (اشاره به بازی دسته جمعی انواع بازی های اندرویدی!)
احتمالا آن یکی و آن یکی و این یکی و من هم همین فکر رو میکنم 😒. اون یکی هم که کلا شوته.
پ.ن۳: شنیدید کودک شیعه ی عربستانی رو در مدینه سر بریدن؟

چگونه با دو رله موتور را به صورت چپگرد و راستگرد کنترل کنیم؟ (ساخت پل H با رله)

به یاد دارم که وقتی در کودکی متوجه شدم که فقط با جابجا کردن سیم های مثبت و منفی آرمیچر جهت چرخش آن عوض می شود چقدر خوشحال شدم! انگار که باری از روی دوشم برداشته شد! البته نمی دانم چرا هر چند وقت یکبار به این تجربه شک می کنم و دوباره با امتحان آن خوشحال می شوم! 😁

مدتی قبل مشغول طراحی و اجرای یک تابلوی نمونه ی IoT (اینترنت اشیاء) بودم؛ بخشی از آن برای نمایش کنترل پرده ی فرضی از راه دور بود. پرده با یک موتور گیربکسی پیچیده می شد و دوباره با حرکت معکوس پایین می آمد؛ برای کنترل موتور پرده هم دو رله در اختیار داشتم که با ریزپردازنده خاموش و روشن می شد.

بعد از کمی جستجو برای یافتن مداری که بتوان با دو کلید موتور را راستگرد و چپگرد کرد، با پل H یا H-Bridge آشنا شدم:

ساختار پل H ( به شکل H مانند آن دقت کنید )

در این مدار می توان به راحتی با تغییر وضعیت کلید های ۱ و ۴ و همچنین کلید های ۲ و ۳، بدون هیچ زحمتی جهت موتور را تغییر داد. با الهام از طرح بالا، به طرح زیر برای استفاده در دو رله می رسیم:

تصویر بسیار گویاست؛ با تغییر وضعیت رله ها، نوع قطب دو سر موتور تعیین می شود. برای خاموش کردن موتور هم می توان همزمان هر دو رله را در وضعیت A یا B قرار داد.

نشست صمیمی با آقای سرشار

امشب، نشست صمیمی با آقای سرشار در مدرسه ی اسلامی هنر (تصویر اول) و دنیای کتاب (تصویر دوم)؛ تغییر را احساس کنید!

از آقای سرشار پرسیدم که قبلا گفته بودید تنظیم تبلیغات شبکه ی کودک دست شما نیست، تایید کردن؛ میخواستم بگم زنگ بزنیم ۱۶۲؟ که خودشون گفتن. ایده هایی هست به امید خدا…