নেট ফ্রেমওয়ার্ক 4.7 এর জন্য আপনার অ্যাপ্লিকেশনটিকে লক্ষ্য করুন এবং এটি উইন্ডোজ 10 ভি 1703 এর অধীনে চালান (ক্রিয়েটার্স আপডেট বিল্ড 15063)। উইন্ডোজ 10 (v1703) এর অধীনে নেট 4.7 দিয়ে , এমএস অনেকগুলি ডিপিআই উন্নতি করেছে ।
.NET ফ্রেমওয়ার্ক 4.7 দিয়ে শুরু করে, উইন্ডোজ ফর্মগুলিতে সাধারণ উচ্চ ডিপিআই এবং গতিশীল ডিপিআই পরিস্থিতিগুলির উন্নতি অন্তর্ভুক্ত থাকে। এর মধ্যে রয়েছে:
বেশ কয়েকটি উইন্ডোজ ফর্ম নিয়ন্ত্রণগুলির স্কেলিং এবং লেআউটে উন্নতি, যেমন মাসিক্যালেকর্ডার নিয়ন্ত্রণ এবং চেকডলিস্টবক্স নিয়ন্ত্রণ।
একক পাস স্কেলিং। .NET ফ্রেমওয়ার্ক 4.6 এবং পূর্ববর্তী সংস্করণগুলিতে, একাধিক পাসের মাধ্যমে স্কেলিং করা হয়েছিল, যার ফলে কিছু নিয়ন্ত্রণ প্রয়োজনীয়তার চেয়ে বেশি পরিমাণে মাপা হয়েছিল।
গতিশীল ডিপিআই দৃশ্যের জন্য সমর্থন যেখানে উইন্ডোজ ফর্ম অ্যাপ্লিকেশন চালু হওয়ার পরে ব্যবহারকারী ডিপিআই বা স্কেল ফ্যাক্টর পরিবর্তন করে।
এটি সমর্থন করতে, আপনার অ্যাপ্লিকেশনটিতে একটি অ্যাপ্লিকেশন ম্যানিফেস্ট যুক্ত করুন এবং সিগন্যাল করুন যে আপনার অ্যাপ্লিকেশনটি উইন্ডোজ 10 সমর্থন করে:
<compatibility xmlns="urn:schemas-microsoft.comn:compatibility.v1">
<application>
<!-- Windows 10 compatibility -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
</application>
</compatibility>
এর পরে, একটি যুক্ত করুন app.config
এবং অ্যাপ্লিকেশন প্রতি মনিটর সচেতন হিসাবে ঘোষণা করুন। এটি এখন অ্যাপকনফাইগ-এ করা হয়েছে এবং ম্যানিফেস্টে আগের মতো নয়!
<System.Windows.Forms.ApplicationConfigurationSection>
<add key="DpiAwareness" value="PerMonitorV2" />
</System.Windows.Forms.ApplicationConfigurationSection>
উইন্ডোজ 10 ক্রিয়েটর আপডেট হওয়ার পরে এই পার্মনিটিভিভি 2 নতুন:
DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2
পার মনিটর ভি 2 নামেও পরিচিত। মূল প্রতি-মনিটর ডিপিআই সচেতনতা মোডের চেয়ে একটি অগ্রগতি, যা অ্যাপ্লিকেশনগুলিকে প্রতি শীর্ষ স্তরের উইন্ডো ভিত্তিতে নতুন ডিপিআই-সম্পর্কিত স্কেলিং আচরণ অ্যাক্সেস করতে সক্ষম করে।
চাইল্ড উইন্ডো ডিপিআই পরিবর্তন বিজ্ঞপ্তিগুলি - প্রতি মনিটর ভি 2 প্রসঙ্গে, পুরো উইন্ডো ট্রিটি ঘটে যাওয়া কোনও ডিপিআই পরিবর্তন সম্পর্কে অবহিত হয়।
নন-ক্লায়েন্টের ক্ষেত্রের স্কেলিং - সমস্ত উইন্ডো স্বয়ংক্রিয়ভাবে ডিপিআই সংবেদনশীল ফ্যাশনে তাদের নন-ক্লায়েন্ট অঞ্চল আঁকা। সক্ষম করুননক্লায়েন্টডিপিপিস্কেলিংয়ের জন্য কলগুলি অপ্রয়োজনীয়।
উইন 32 মেনুগুলির এস কলিং - প্রতি মনিটরের ভি 2 প্রসঙ্গে তৈরি করা সমস্ত এনটিউসার মেনু প্রতি মনিটরের ফ্যাশনে স্কেলিং করবে।
ডায়ালগ স্কেলিং - প্রতি মনিটরের ভি 2 প্রসঙ্গে তৈরি করা উইন 32 ডায়ালগগুলি স্বয়ংক্রিয়ভাবে ডিপিআই পরিবর্তনের প্রতিক্রিয়া জানাবে।
Comctl32 নিয়ন্ত্রণগুলির উন্নত স্কেলিং - বিভিন্ন কমপ্লেট 32 নিয়ন্ত্রণগুলি মনিটরের ভি 2 প্রসঙ্গে ডিপিআই স্কেলিং আচরণকে উন্নত করেছে।
উন্নততর তাদের আচরণের আচরণ - প্রতি মনিটর ভি 2 উইন্ডোর প্রসঙ্গে খোলা UxTheme হ্যান্ডলগুলি সেই উইন্ডোটির সাথে সম্পর্কিত ডিপিআইয়ের শর্ত হিসাবে কাজ করবে।
ডিপিআই পরিবর্তন সম্পর্কে অবহিত করতে এখন আপনি তিনটি নতুন ইভেন্টের সদস্যতা নিতে পারেন:
Control.DpiChangedAfterParent , যা বহিস্কার করা হয় ঘটে যখন একটি নিয়ন্ত্রণের জন্য ডিপিআই সেটিং কোনো ডিপিআই ইভেন্টের পরিবর্তন এটা পিতা বা মাতা নিয়ন্ত্রণ বা ফর্মের জন্য ঘটেছে পর প্রোগ্রামেটিক্যালি পরিবর্তিত হয়।
Control.DpiChangedBeforeParent , যা একটি নিয়ন্ত্রণের জন্য ডিপিআই সেটিং তার পিতা বা মাতা নিয়ন্ত্রণ বা ফর্মের জন্য একটি ডিপিআই ইভেন্টের পরিবর্তন সামনে প্রোগ্রামেটিক্যালি পরিবর্তিত হয় বহিস্কার করা হয় ঘটেছে।
ফর্ম.ডিপিচেনজেড , যা ফর্মটি প্রদর্শিত হয় যেখানে ফর্মটি বর্তমানে প্রদর্শিত হয় সেখানে ডিভাইস সেটিংটি পরিবর্তিত হয়।
আপনার কাছে ডিপিআই হ্যান্ডলিং / স্কেলিং সম্পর্কিত 3 সহায়ক পদ্ধতি রয়েছে:
কন্ট্রোল.লজিকালটোডোভাইস ইউনাইটস , যা একটি মানকে লজিকাল থেকে ডিভাইস পিক্সেলে রূপান্তর করে।
কন্ট্রোল.স্কেলবিটম্যাপ লজিক্যাল টো ডিভাইস, যা কোনও ডিভাইসের জন্য লজিক্যাল ডিপিআইতে একটি বিটম্যাপ চিত্রকে স্কেল করে।
কন্ট্রোল.ডভাইসডিপিআই , যা বর্তমান ডিভাইসের জন্য ডিপিআই দেয়।
আপনি যদি এখনও সমস্যাগুলি দেখতে পান তবে আপনি অ্যাপকনফাইগ এন্ট্রিগুলির মাধ্যমে ডিপিআই উন্নতিগুলি বেছে নিতে পারেন ।
যদি আপনার সোর্স কোডে অ্যাক্সেস না থাকে তবে আপনি উইন্ডোজ এক্সপ্লোরারে অ্যাপ্লিকেশন বৈশিষ্ট্যে যেতে পারেন, সামঞ্জস্য করতে পারেন এবং নির্বাচন করতে পারেন System (Enhanced)
যা ডিপিআই হ্যান্ডলিংয়ের উন্নতি করতে জিডিআই স্কেলিং সক্রিয় করে:
অ্যাপ্লিকেশনগুলির জন্য যা জিডিআই-ভিত্তিক উইন্ডোজ এখন প্রতি মনিটরের ভিত্তিতে ডিপিআই স্কেল করতে পারে। এর অর্থ এই যে এই অ্যাপ্লিকেশনগুলি, যাদুতে, প্রতি মনিটর ডিপিআই সচেতন হয়ে উঠবে।
এই সমস্ত পদক্ষেপগুলি করুন এবং আপনার উইনফোর্স অ্যাপ্লিকেশনগুলির জন্য আরও ভাল ডিপিআই অভিজ্ঞতা পাওয়া উচিত। তবে মনে রাখবেন, আপনার নেট .7.7 এর জন্য আপনার অ্যাপ্লিকেশনটি টার্গেট করতে হবে এবং কমপক্ষে উইন্ডোজ 10 বিল্ড 15063 (ক্রিয়েটর আপডেট) প্রয়োজন। পরবর্তী উইন্ডোজ 10 আপডেট 1709 এ, আমরা আরও উন্নতি করতে পারি।
NumericUpDown
Margin
এটিও সঠিকভাবে স্কেল করে না । মনে হচ্ছে মার্জিনটি দু'বার মাপা হয়েছে। যদি আমি এটি আবার স্কেল করি তবে এটি দুর্দান্ত দেখাচ্ছে।