2009-05-01 24 views
197

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

इसके बजाय मैं Actualwidth और Actualheight मूल्यों के साथ एक बड़ी खिड़की मिल दोनों 512

विंडो घोषणा करने के लिए सेट (?!?!):

<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 

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

+6

तुम भी खिड़की के साथ '' "CenterScreen" ' –

उत्तर

360

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

+75

आलसी लोगों कि पेस्ट' SizeToContent = "WidthAndHeight" 'प्रतिलिपि बनाना चाहते हैं के लिए करने के लिए सेट .WindowStartupLocation' केंद्रित करने के लिए चाहते हो सकता है;) –

+4

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

3

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

7

पुराना सवाल लेकिन एक अद्यतन जवाब:

के रूप में @ Muad'Dib उसके जवाब में सुझाव दिया:

आप SizeToContent="WidthAndHeight" स्थापित करना चाहिए।

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

MaxWidth="600" 
MaxHeight="400" 
+0

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

संबंधित मुद्दे