XAML कॉलमडिफाइनमेंट में * (तारांकन) का क्या अर्थ है?


106

नीचे XAML में * (तारांकन) का क्या अर्थ है?

<ColumnDefinition Width="0.07*"/>
<Grid Height="100" HorizontalAlignment="Left" 
      Margin="102,134,0,0" 
      Name="grid1" VerticalAlignment="Top" 
      Width="354">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="40*" />
        <ColumnDefinition Width="314*" />
    </Grid.ColumnDefinitions>
</Grid>

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

जवाबों:


168

जब आप एक WPF ग्रिड में एक कॉलम को परिभाषित करते हैं तो आप तीन संभावित मानों में से एक को चौड़ाई सेट कर सकते हैं:

  • एक निश्चित चौड़ाई,
  • Auto - कॉलम अपने बच्चों को फिट करने के लिए जितना संभव हो उतना चौड़ा हो जाएगा, या
  • * (स्टार) किसी भी उपलब्ध शेष स्थान को ग्रहण करें

*(डिफ़ॉल्ट 1 अगर कोई नंबर का उल्लेख किया जाता है) एक नंबर लगाया जाता है। उपलब्ध स्थान को उपसर्ग संख्या के अनुपात में तारांकित स्तंभों के बीच विभाजित किया गया है।

अगर आपकी यह परिभाषा है

<Grid.ColumnDefinitions>
  <ColumnDefinition Width="0.07*"/>
  <ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>

पहले कॉलम को कुल स्थान का 7% मिलेगा और दूसरे कॉलम को 93% मिलेगा। दूसरी ओर यदि आपके पास यह परिभाषा है:

<Grid.ColumnDefinitions>
  <ColumnDefinition Width="0.07*"/>
  <ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>

पहले कॉलम को 1/3 और दूसरे को उपलब्ध स्थान का 2/3 हिस्सा मिलेगा।


आपके विशिष्ट मामले में जहां ग्रिड की चौड़ाई 354 है और दो स्तंभों का अनुपात 40 और 314 है, आपको निम्नलिखित कॉलम चौड़ाई मिलेगी:

पहला कॉलम चौड़ाई = 40 / (40 + 314) * 354 = 40
दूसरी युग्मन चौड़ाई = 314 / (40 + 314) * 354 = 314

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

यदि आप एक ऐसा लेआउट चाहते हैं जहां दूसरा कॉलम पहले की चौड़ाई से दोगुना है और तीसरा कॉलम पहले के चौड़ाई को तीन गुना कर देता है तो आप इस प्रकार हैं:

<Grid.ColumnDefinitions>
  <ColumnDefinition Width="*"/>
  <ColumnDefinition Width="2*"/>
  <ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>

यदि ग्रिड की कुल चौड़ाई 300 है तो आपको कॉलम की चौड़ाई 50, 100 और 150 मिलती है। यदि ग्रिड की कुल चौड़ाई 600 है, तो आपको कॉलम की चौड़ाई 100, 200 और 300 मिल सकती है। और इसी तरह।


3

किसी भी अन्य स्टार-चौड़ाई कॉलम के लिए इसका अनुपात ०.० another है - यानी यदि किसी अन्य कोलंबोमिफिनिशन की चौड़ाई ०.१४ है, तो वह कॉलम चौड़ाई से दोगुना है = राशन के बारे में सब


1

यह अनुपात का उपयोग करके कॉलम आकार बनाता है। यदि आपके पास एक और परिभाषा है जैसे <ColumnDefinition Width="0.03*"/>पहला कॉलम 70% जगह लेगा और दूसरा एक 30% तक ले जाएगा।


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