2012-11-07 9 views
5

मैं एक ListView में एक WrapGriditemscontrol के रूप में उपयोग कर रहा हूँ XAML कोड (WinRT)खिंचाव WrapGrid आइटम चौड़ाई

<ItemsPanelTemplate > 
    <WrapGrid x:Name="ContentGrid" MinWidth="200" MinHeight="0" VerticalAlignment="Top" HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,0,0,5" >          
    </WrapGrid> 
</ItemsPanelTemplate> 

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

<DataTemplate x:Key="CustomChildItemTemplete"> 
    <Grid Background="Red"> 
    </Grid> 
</DataTemplate > 

अधिक जानकारी: जब listview चौड़ाई लगभग 800 (लगभग) यह 4 आइटम क्षैतिज दिखा रहा है (कम से कम के रूप में है आइटम चौड़ाई 200 है) लेकिन यदि चौड़ाई 900 है (4 आइटम दृश्यमान) और रिक्त स्थान (50 पीएक्स) itemscontrol के दाएं और बाएं में है, तो मैं आइटम चौड़ाई को बढ़ाकर इस रिक्त स्थान को कैसे हटा सकता हूं (केवल आइटम चौड़ाई होना चाहिए 225 जब listview चौड़ाई 900 है)

+1

मुझे आपकी समस्या बहुत अच्छी तरह से समझ में नहीं आती है। शायद आपके परिणाम का एक स्क्रीनशॉट उपयोगी हो सकता है? –

+0

@ निकोलसवोरन, देखें – VibeeshanRC

+1

क्या यह गतिशील (आपके आइटम का नियंत्रण नियंत्रण का आकार, या यह स्वचालित रूप से लेआउट द्वारा सेट किया गया है), या आप चौड़ाई या अपने आइटम सेट करते हैं अपने आप को नियंत्रित करें? –

उत्तर

3

सबसे आसान तरीका MinWidth को इस तरह से बांधना है:

<ItemsControl x:Name="MyItemsControl"> 
    <ItemsPanelTemplate > 
     <WrapGrid x:Name="ContentGrid" MinWidth="{Binding Path=Width, MinWidth="{Binding RelativeSource={RelativeSource Mode=Self}, Converter={StaticRessource Myconverter}, ConverterParameter=[Here Nb of object that you want in one line]}" MinHeight="0" VerticalAlignment="Top" HorizontalAlignment="Center" Orientation="Horizontal" Margin="0,0,0,5" >          
     </WrapGrid> 
    </ItemsPanelTemplate> 
</ItemsControl> 

और कनवर्टर बस अपने आइटम की चौड़ाई को विभाजित करें पैरामीटर द्वारा नियंत्रित करें (ऑब्जेक्ट का एनबी जिसे आप एक पंक्ति में चाहते हैं)। तो ऑब्जेक्ट स्वचालित रूप से आकार के आकार पर होते हैं जो आप चाहते हैं!

+1

@vibeeshanRC द्वारा सेट किया गया है कृपया मेरे संपादित पोस्ट –

+0

पर एक नज़र डालें, मैं इस कोड का परीक्षण नहीं करता हूं, इसलिए शायद यह "जैसा है" काम नहीं करता है, लेकिन विचार यह है। आप इसके बजाय 'RelativeSource = {RelativeSource TemplatedParent}' के साथ प्रयास कर सकते हैं, जो wpf पर काम करता है, लेकिन WinRT –

+1

'RelativeSource = {RelativeSource Mode = TemplatedParent}} के साथ परीक्षण नहीं किया गया है, 'WinRT –

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