কীভাবে স্ক্রিনে ডব্লিউপিএফ অ্যাপ্লিকেশনটি কেন্দ্র করবেন?


110

আমি আমার ডাব্লুপিএফ অ্যাপ্লিকেশনটি প্রাথমিক স্ক্রিনে শুরু করতে চাই। আমি জানি আমার আমার উইন্ডো.ও বাম এবং মাই উইন্ডো.টপ সেট করতে হবে, তবে আমি মানগুলি কোথায় পাব?

আমি পেয়েছি System.Windows.Forms.Screen.PrimaryScreen, যা সম্ভবত WPF নয়। এমন কোনও ডাব্লুপিএফ বিকল্প আছে যা আমাকে স্ক্রিন রেজোলিউশন দেয় বা এর মতো কিছু দেয়?

উত্তর:


143

এটি আপনার উইন্ডো কনস্ট্রাক্টরে রাখুন

WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

.NET ফ্রেমওয়ার্ক সমর্থিত: 4, 3.5, 3.0

.NET ফ্রেমওয়ার্ক ক্লায়েন্ট প্রোফাইল সমর্থন করে: 4, 3.5 এসপি 1


2
আমার জন্য কাজ করেছেন (। নেট 4) এবং আমি WindowStartupLocation.CenterOwnerকিছু শিশু
উইন্ডোয়ের

ডিফল্ট হয় Manual। রেফ: এমএসডিএন.মাইক্রোসফটকম
en


49

আপনি এখনও ডাব্লুপিএফ অ্যাপ্লিকেশন থেকে স্ক্রীন শ্রেণি ব্যবহার করতে পারেন। আপনার অ্যাপ্লিকেশন থেকে আপনার কেবলমাত্র সিস্টেম. উইন্ডোজ.ফোর্স সমাবেশটি উল্লেখ করতে হবে। একবার আপনি এটি করেন, (এবং সিস্টেমটি রেফারেন্স করুন below নীচের উদাহরণের জন্য অঙ্কন):

Rectangle workingArea = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea;

... ঠিক আছে কাজ করে।

আপনি কি আপনার মূল উইন্ডো সম্পত্তি উইন্ডো স্টার্টআপলোকেশনটিকে কেন্দ্রের স্ক্রিনে সেট করার কথা বিবেচনা করেছেন?


1
ওহ ... আমি সেটিকে জানতাম না ধন্যবাদ।
মার্সেল বি

1
আমি উইন্ডো স্টার্টআপ লোকেশন খুঁজছিলাম; আমি জানতাম যে আমি আগে দেখেছি, খুব দরকারী!
চোকোজোশ

@ মিশেল পেট্রোটা ধন্যবাদ আমার আরও প্রায়ই সম্পত্তি দেখা উচিত।
meffordm

8

উপস্থাপনা ফ্রেমে ওয়ার্কে সিস্টেমপ্যারামিটার ক্লাস সম্পর্কে কী? এটা একটা হয়েছে WorkArea সম্পত্তি যে হতে আপনার জন্য যা খুঁজছিলেন তা বলে মনে হয়।

তবে, উইন্ডোটি সেট করবেন না কেন? উইন্ডো স্টার্টআপ লোকেশন কাজ? CenterScreen এনাম মানগুলির মধ্যে একটি। আপনি কি কেন্দ্রীকরণ টুইট করতে হবে?


দুর্দান্ত সন্ধান :) কমপক্ষে আমার জন্য কেন্দ্রের স্ক্রিনে সমস্যাটি হ'ল, আমার লগ ইন উইন্ডোটি ছোট এবং অ্যাপ্লিকেশনটি খোলার সময় যদি ব্যবহারকারী চারপাশে ক্লিক করেন তবে প্রায়শই তা নজরে না পড়ে এবং পটভূমিতে চলে যায়। তবে যদি আমি এটি কেন্দ্রের প্রাথমিক প্রদর্শনে খুলতে পারি তবে এটি ঠিক আছে works দ্রষ্টব্য: বেশিরভাগ ব্যবহারকারীর কাছে 4+ স্ক্রিন রয়েছে
মিশাল সিচান

4+ স্ক্রিন, আমাকে গণনা করুন!
user7116

7

System.Windows.Formsআপনার আবেদন থেকে আপনার সমাবেশটি উল্লেখ করার দরকার নেই । পরিবর্তে, আপনি ব্যবহার করতে পারেন System.Windows.SystemParameters.WorkArea। এটি সমান System.Windows.Forms.Screen.PrimaryScreen.WorkingArea!


2

এখানে ডাব্লুপিএফ সমতুল্য নেই। System.Windows.Forms.Screenএখনও .NET কাঠামোর অংশ এবং যদিও ডাব্লুপিএফ থেকে ব্যবহার করা যেতে পারে।

আরও বিশদের জন্য এই প্রশ্নটি দেখুন , তবে আপনি WindowInteropHelperক্লাসটি ব্যবহার করে স্ক্রিন সম্পর্কিত কলগুলি আপনার ডাব্লুপিএফ নিয়ন্ত্রণ মোড়কে ব্যবহার করতে পারেন ।


2
var window = new MyWindow();

পর্দার ব্যবহার কেন্দ্রের জন্য:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;

প্যারেন্ট উইন্ডো ব্যবহারের কেন্দ্রের জন্য:

window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner;

0

আমি ডাব্লুপিএফ কোডে রাখতে পছন্দ করি।

ইন [WindowName].xamlফাইল:

<Window x:Class=...
...
WindowStartupLocation ="CenterScreen">
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.