2009-07-11 10 views
7

हैलो मैं लेबल और पाठ बॉक्स के साथ एक खिड़की (WPF) है, मैं चाहता हूँ उसे जितना संभव के रूप में स्क्रीन रिज़ॉल्यूशन पर फिट करने के लिए, मैं कैसे करते हो यहआकार स्क्रीन रिज़ॉल्यूशन में फिट करने के लिए सामग्री

उत्तर

25

व्यूबॉक्स बहुत उपयोगी है यदि आपको खिड़की का आकार बदलते समय आनुपातिक रूप से स्केल करने के लिए अपनी विंडो की सामग्री की आवश्यकता होती है (उदाहरण के लिए इसे अधिकतम करें)। इस न्यूनतम पृष्ठ में

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <Viewbox> 
     <StackPanel> 
      <TextBlock FontSize="14">Example</TextBlock> 
      <Border Background="Aqua" Width="100" Height="100"></Border>      
     </StackPanel> 
    </Viewbox> 
</Window> 

आपके पास टेक्स्टब्लॉक और एक रंगीन सीमा है जो लंबवत है; यदि आप इस xaml को शुरू करते हैं तो विंडो का आकार 300x300 होगा, टेक्स्टब्लॉक का फ़ॉन्ट आकार में 14 होगा और रंगीन सीमा 100x100 होगी। यदि आप खिड़की को पुन: सहेजते हैं तो आप रिश्तेदार अनुपात को ध्यान में रखते हुए टेक्स्टब्लॉक और सीमा स्केल दोनों को तदनुसार देखेंगे (इसलिए वे xaml में निर्दिष्ट आकार के अधिक नहीं होंगे)। व्यूबॉक्स वास्तव में उपयोगी है, इस संबंध में, यदि आपको ऐसी खिड़की की आवश्यकता है जिसका आंतरिक घटक लेआउट हमेशा अंतिम संकल्प से स्वतंत्र रूप से समान दिखता है तो यह प्रदर्शित किया जाएगा (पदार्थ पहलू अनुपात, विचार क्या है)। यह स्पष्ट रूप से व्यूबॉक्स के अंदर रखे गए किसी भी सामग्री के साथ काम करता है (उदाहरण के लिए हमारे पास वीडियो और 3 डी व्यू वाला एप्लिकेशन था)। ध्यान दें कि विजुअल स्टूडियो 2008 में आप डिज़ाइनर में व्यूबॉक्स की सामग्री को देखने में सक्षम नहीं होंगे।

इस सहायता की आशा करें।

+0

मैं इस अनंत की तलाश में अनंतकाल के लिए इंटरनेट को खराब कर रहा हूं <। < –

0

Do तुम्हारा मतलब है कि आप खिड़की को पूरी स्क्रीन भरना चाहते हैं? ऐसा करने का सबसे आसान तरीका (आगे सिरदर्द के बिना) खिड़की को अधिकतम करना है।

w.WindowState = WindowState.Maximized; 

संपादित करें:

एक स्केलेबल खिड़की लेआउट आप दृश्य स्टूडियो में XAML संपादक का उपयोग कर से बचने के लिए की आवश्यकता है! असल में आप इसे संपादक में कर सकते हैं, लेकिन यह बहुत कठिन है।

बहुत आसान हाथ से XAML लिखने के लिए:

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition/> 
     <RowDefinition/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 

    <Label Grid.Column="0" Grid.Row="0">First Name</Label> 
    <TextBox Grid.Column="1" Grid.Row="0" Name="firstName">Fred</TextBox> 
    <Label Grid.Column="0" Grid.Row="1">First Name</Label> 
    <TextBox Grid.Column="1" Grid.Row="1" Name="lastName">Smith</TextBox> 
</Grid> 

हो जाएगा ताकि आकार खिड़की फिट करने के लिए, हालांकि, अजीब लग सकता है पंक्तियों और स्तंभों डिफ़ॉल्ट रूप से आधा अंतरिक्ष प्रत्येक मिल जाएगा के रूप में। ताकि वे एक ऊंचाई बजाय उनकी सामग्री द्वारा निर्धारित किया जाता है तो आपको यह ओवरराइड कर सकते हैं:

<RowDefinition Height="Auto"/> 

यह भी कुछ नियंत्रण पर मार्जिन डाल करने के लिए मदद कर सकते हैं करने के लिए उन्हें अंतरिक्ष आउट:

<TextBox Grid.Column="1" Grid.Row="1" Margin="6" Name="lastName">Smith</TextBox> 
+0

ओह नहीं, मेरी इच्छा है कि यह मेरी समस्या थी ... मैं सामग्री को खिड़की के आकार में स्केल करना चाहता हूं। –

+0

मैं संपादक के साथ काम नहीं कर रहा हूं ... आपने मुझे समझ नहीं लिया, मैं सामग्री को बढ़ाना चाहता हूं ... फैलाना नहीं .. –

+0

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

2

आप पैमाने पर करने चाहते हैं वास्तव में फ़ॉन्ट आकार सहित सबकुछ, आप शायद अपनी सामग्री में स्केल ट्रांसफॉर्म लागू कर सकते हैं, और एक्स और वाई मानों को विंडो की चौड़ाई और ऊंचाई पर बांध सकते हैं। इसके बाद आपको उचित पैमाने पर रूपांतरित करने के लिए एक मूल्य परिवर्तक की भी आवश्यकता होगी।

+0

मैं इसे एमवीवीएम में कैसे कर सकता हूं? मेरे पास मेरे सभी वीएमएस के लिए एक शैली है .. मैं स्केल बनाना चाहता हूं .. –

1

यदि आप खिड़की के आकार में सब कुछ स्केल करना चाहते हैं तो बस सब कुछ एक व्यूबॉक्स नियंत्रण में रखें।

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