2013-07-09 8 views
5

मेरे पास एक WPF WrapPanel है, इसमें Buttons में से कुछ हैं, मैं उन्हें रनटाइम पर व्यवस्थित करना चाहता हूं। डिजाइन समय में XAML कोड की तरह:रनटाइम पर WrapPanel में नियंत्रण व्यवस्था पुन: व्यवस्थित करें

<Grid x:Name="LayoutRoot"> 
    <WrapPanel Margin="133,127,216,189" Background="#FF979797"> 
     <Button Content="Button" Width="75"/> 
     <Button Content="Button" Width="75"/> 
     <Button Content="Button" Width="75"/> 
     <Button Content="Button" Width="75"/> 
     <Button Content="Button" Width="75"/> 
     <Button Content="Button" Width="75"/> 
    </WrapPanel> 
</Grid> 

लेकिन, मुझे रन टाइम पर Buttons की व्यवस्था फिर से करना चाहते हैं। क्या आप इसके बारे में मेरी मदद कर सकते हैं।

उत्तर

0

आप रन टाइम पर बच्चों को पुनर्व्यवस्थित करना चाहते हैं, तो आप दो विकल्प हैं, बजाय बनाने (या कम से कम छेड़खानी) कोड में WrapPannel के बच्चों XAML की, या setting up Triggers (एक शैली टैग में) बटन हेरफेर करने के लिए जैसी जरूरत थी।

Here's एक उदाहरण।

3

आप कुछ इस तरह कर सकते हैं:

<ItemsControl ItemsSource="{Binding Items}"> 
     <ItemsControl.ItemsPanel> 
      <ItemsPanelTemplate> 
       <WrapPanel /> 
      </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
     <ItemsControl.ItemTemplate> 
      <DataTemplate> 
       <Button Content="{Binding}" Width="75"/> 
      </DataTemplate> 
     </ItemsControl.ItemTemplate> 
    </ItemsControl> 

आइटम अपने DataContext पर एक संपत्ति हो सकता है और आम तौर पर किसी प्रकार की एक ObservableCollection होगा। सबसे सरल मामले में, यह स्ट्रिंग का संग्रह हो सकता है जो बटन कैप्शन से मेल खाता है। जब आप ऑब्जर्जेबल कोलेक्शन तत्वों को पुनर्व्यवस्थित करते हैं, तो यह उन्हें व्यवस्थित करने के लिए एक रैपपनेल का उपयोग करके आइटम्स कंट्रोल में संबंधित बटन को पुनर्व्यवस्थित करेगा। (मॉडल-व्यू-ViewModel।) यह जल्दी से WPF अनुप्रयोगों और है विकसित करने के लिए उद्योग मानक पैटर्न बनता जा रहा है


एक तरफ ध्यान दें पर, दृष्टिकोण के इस प्रकार का उपयोग कर क्या MVVM पैटर्न के रूप में जाना जाता है की ओर एक कदम है लचीला, गतिशील यूआई बनाने के लिए बहुत सारे फायदे हैं। यदि आप कोई महत्वपूर्ण WPF विकास करना चाहते हैं तो मैं अत्यधिक इस पैटर्न का शोध करने की सलाह देता हूं। उपयोग करने में थोड़ा समय लगता है, लेकिन यह अंत में काफी सार्थक है।

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