विंडो ऊंचाई = "ऑटो" अपेक्षित रूप से काम नहीं कर रहा है


223

मैं जो करने की कोशिश कर रहा हूं वह एक खिड़की दिखा रहा है, जिसमें स्पष्ट रूप से ऊंचाई / चौड़ाई नहीं है, (दोनों मान छोड़ दिए गए या सेट किए गए हैं Auto)। मैं अनुमान लगा रहा था कि खिड़की ऑटो द्वारा अपने आकार का पता लगाएगी - सभी निहित उपयोगकर्ता कॉन्ट्रोल्स आकारों की गणना करेगी, लेकिन यह वास्तव में काम नहीं करता है!

इसके बजाय मैं के साथ एक बड़ी खिड़की प्राप्त Actualwidthऔर Actualheight512 के लिए दोनों सेट को महत्व देता है (?!?!)

खिड़की की घोषणा:

<Window x:Class="Window3"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window3" 
  Height="Auto">
<StackPanel>
    <Label>Window</Label>
</StackPanel>
</Window>

इस विंडो को संवाद के रूप में दिखा रहा है:

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click
    Dim dlg As New Window3
    dlg.ShowDialog()
End Sub

क्या इसका कोई समाधान है? मैं स्पष्ट रूप से अपनी खिड़की का आकार निर्धारित नहीं करना चाहता क्योंकि निर्माण के मापदंडों के आधार पर प्रपत्र में कई नियंत्रण ध्वस्त हो जाएंगे, और प्रपत्र के वास्तविक आकार को खोजने की कोशिश मुश्किल (और बदसूरत) होगी।


7
तुम भी खिड़की के साथ .WindowStartupLocationसेट करना चाहते हो सकता है"CenterScreen"
एंडर्स लिंडन

जवाबों:


408

विंडो की प्रॉपर्टी सेट करें SizeToContent="WidthAndHeight"। यह मदद करनी चाहिए।


89
आलसी लोगों के लिए जो पेस्ट कॉपी करना चाहते हैं SizeToContent="WidthAndHeight";)
टोनो नाम

4
SizeToContent = "WidthAndHeight" का उपयोग करने के लिए सावधान, यदि विंडो की सामग्री का आकार स्क्रीन के आकार से अधिक बढ़ जाता है, तो विंडो स्क्रीन से बह सकती है।
Kylo Ren

@KyloRen तो मैक्सविद या मैक्सहाइट समस्या से बचने के लिए सेट किया जाना चाहिए
कार्लोस लियू

@CarlosLiu लंबे समय से, मैं अभ्यास से बाहर हूँ और याद नहीं कर सकता, लेकिन हाँ तार्किक रूप से सही लगता है। डेमो में कोशिश करें :)
Kylo Ren

यह बहुत अच्छा है, लेकिन मैं अभी भी उत्सुक हूँ क्यों Height="Auto"और Width="Auto"इसी कार्य को पूरा नहीं करता है? मैं अनुमान लगा रहा हूं क्योंकि विंडो सामग्री को इन सेटिंग्स के साथ नहीं माना जाता है।
माइक लोरी

7

पुराना प्रश्न लेकिन एक अद्यतन उत्तर:

जैसा कि @ मुअदीद ने अपने उत्तर में सुझाव दिया:

आपको सेट करना चाहिए SizeToContent="WidthAndHeight"

यदि विंडो की सामग्री का आकार स्क्रीन के आकार से अधिक बढ़ जाता है, तो विंडो स्क्रीन से बह सकती है। तो, आपको विचार करना चाहिए:

MaxWidth="600"
MaxHeight="400"

और जब MaxHeight="400"सम्मान न हो तो क्या करें ? यह स्क्रीन सीमा तक बढ़ता है?
andrepaulo

3

खैर आप खिड़की की ऊंचाई ऑटो पर सेट नहीं कर सकते, ऐसा करने के लिए आप थोड़ी चाल का उपयोग कर सकते हैं, मुख्य मुख्य ग्रिड कंटेनर का नाम दें, ऑटो की ऊंचाई निर्धारित करें फिर खिड़की की ऊंचाई को मुख्य ग्रिड की ऊंचाई पर बांधें


0

लोडेड इवेंट विंडो के साथ क्युरेंट स्क्रीन में आकार सेट करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.