2012-09-14 18 views
5

में शेष स्थान लेने के लिए ग्रिड कॉलम को स्वचालित करना WPF में, मुझे आकार में ग्रिड प्राप्त करने का प्रयास करने का समय लगता है।पैरेंट

मेरे पास मेरी ग्रिड के लिए निम्नलिखित लेआउट:

<ItemsControl HorizontalContentAlignment="Stretch"> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Grid> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition Width="80"/> 
         <ColumnDefinition Width="80"/> 
         <ColumnDefinition Width="100"/> 
        </Grid.ColumnDefinitions> 
        <Label Grid.Column="0" /> 
        <Label Grid.Column="1"/> 
        <TextBox Grid.Column="2"/> 
        <Button Grid.Column="3"/> 
       </Grid> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
</ItemsControl> 

समस्या यह है कि चौड़ाई = "स्वचालित" सामग्री की चौड़ाई के उस स्तंभ का आकार है, और में अतिरिक्त जगह को भरना नहीं लगता है पैरेंट कंटेनर। यह शेष पंक्तियों को सभी पंक्तियों के अंत में सभी unaligned, और बदसूरत खाली जगह छोड़ देता है।

मैं शायद कुछ सरल याद कर रहा हूँ, लेकिन मैं उचित रूप से स्तंभ फिट करने के लिए एक विधि को खोजने के लिए प्रतीत नहीं कर सकते हैं।

या क्या नौकरी के लिए कोई बेहतर नियंत्रण है?

उत्तर

9

* साधन भरने या साझा करें। यदि आपके पास * के साथ दो थे तो वे चौड़ाई समान रूप से साझा करेंगे।

<ColumnDefinition Width="*"/> 
0

लगता है कि मुझे थोड़ा और अधिक टंकण करने के बाद एक समाधान मिला।

समस्या थी: <ColumnDefinition Width="Auto"/>

यह कॉलम सामग्री के लिए फिट करने के लिए पैदा कर रहा था। मैंने इसे बदल दिया: <ColumnDefinition />

इससे सामग्री आकार के बावजूद कॉलम मूल कंटेनर में छोड़ी खाली जगह पर फिट हो जाता है।

+0

जो 'चौड़ाई = "*" 'में अनुवाद करता है। थोड़ी अधिक जानकारी के लिए @ ब्लैम का जवाब देखें –

+0

एमएचएच मेरे मामले में काम नहीं कर रहा है, बटन अभी भी टेक्स्ट के जितना बड़ा है। – AgentKnopf

+0

काम नहीं करता है अगर सामग्री चौड़ाई कॉलम से बड़ी है। – walteronassis

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