2011-05-02 25 views
6

मैंने एक बाल विंडो here बनाने के बारे में पहले एक प्रश्न पूछा है ... अब जब मैं बाल विंडो खोलता हूं, तो यह पैरेंट विंडो पर केंद्रित नहीं होता है। मैं इसे मूल विंडो में केंद्रित करने के लिए कैसे सेट कर सकता हूं?WPF विंडो स्थिति

उत्तर

18

This समाधान मेरे लिए ठीक काम किया।

यहां एक विधि है जिसे मैंने अपने माता-पिता या एप्लिकेशन के लिए मुख्य विंडो में डब्लूपीएफ में केंद्रित करने के लिए पाया है। यह WinForms में आप इसे कैसे करते हैं उससे अलग नहीं है।

बच्चे की विंडो के लिए, अपना विंडोस्टार्टअप स्थान "सेंटरऑनर" पर सेट करें। इससे इसे खिड़की के केंद्र में दिखाया जाएगा। संक्षिप्त करें

<Window x:Class="WpfApplication1.TestChild" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="TestChild" Height="300" Width="300" 
    WindowStartupLocation="CenterOwner"> 

अब, वह सब करने के लिए यह प्रदर्शित करने से पहले अपने मालिक के लिए निर्धारित है बचा है। यदि आप विंडो को प्रदर्शित करने के लिए उपयोग कर रहे कोड को विंडो क्लास के अंदर चल रहा है, तो आप इसका उपयोग कर सकते हैं। संक्षिप्त करें

TestChild testWindow = new TestChild(); 
testWindow.Owner = this; 
testWindow.Show(); 

ऐसा हमेशा हालांकि नहीं है,; कभी-कभी, आपको किसी पृष्ठ या उपयोगकर्ता नियंत्रण पर चल रहे कोड से बाल विंडो प्रदर्शित करने की आवश्यकता होती है। इस मामले में, आप चाहते हैं कि बच्चे की खिड़की आवेदन की मुख्य खिड़की पर केंद्रित हो। संक्षिप्त करें

TestChild testWindow = new TestChild(); 
testWindow.Owner = Application.Current.MainWindow; 
testWindow.Show(); 
+1

क्या आप अपने उत्तर के भीतर समाधान का उदाहरण दे सकते हैं? बाहरी लिंक ठीक हैं, लेकिन आदर्श स्टैक ओवरफ़्लो उपयोग योग्य होना चाहिए भले ही बाकी इंटरनेट गायब हो जाए। –

1

आप इस कोशिश कर सकते हैं:

AboutWindow window = new AboutWindow(); 
window.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterOwner; 
window.Owner = this; 

window.ShowDialog(); 
3

this की कोशिश करो।

aboutWindow.WindowStartupLocation= WindowStartupLocation.CenterOwner ; 

aboutWindow.ShowDialog(this); 
संबंधित मुद्दे