2012-12-25 39 views
36

मैंने रेडियोबटन तत्व में एक डॉकपैनल जोड़ा है जैसे कि मैं रेडियो बटन लेबल, एक टेक्स्टबॉक्स और 100% चौड़ाई का उपयोग करके क्षैतिज रूप से एक बटन वितरित कर सकता हूं।डब्ल्यूपीएफ: मैं डॉकपैनल में मध्य बच्चे को कैसे फैला सकता हूं?

डॉकपैनल के भीतर LastChildFill="True" का उपयोग करके अंतिम तत्व फैलाता है। यदि टेक्स्टबॉक्स पैनल में अंतिम बच्चा है तो यह अच्छी तरह से काम करता है। लेकिन, चूंकि बटन अंतिम तत्व है और इसकी निश्चित चौड़ाई है, तो टेक्स्टबॉक्स को बढ़ाया जाना चाहिए। हालांकि, ऐसी कोई संपत्ति नहीं है जैसे 2ndChildFill="True"

मेरे कोड इस तरह दिखता है:

<RadioButton HorizontalAlignment="Stretch" 
             HorizontalContentAlignment="Stretch"> 
     <DockPanel > 
      <TextBlock VerticalAlignment="Center">in location:</TextBlock> 
      <TextBox Grid.Column="1" Margin="10,0,0,0">Path string</TextBox> 
      <Button HorizontalAlignment="Right" 
        Margin="10,0,0,0" Padding="3,0">...</Button> 
     </DockPanel> 
    </RadioButton> 

और यह मुझे देता है यह:

wpf screenshot

कोई भी विचार, इसे ठीक करने के संकेत? अग्रिम में बहुत धन्यवाद ...

+2

क्यों आप एक ग्रिड के बजाय का उपयोग नहीं करते? दूसरे कॉल के साथ 3 कॉलम के साथ ग्रिड * चौड़ाई और अन्य ऑटो – Charleh

+1

हाँ पर सेट है, जो काम कर सकता है। लेकिन यह मेरे लिए थोड़ी अधिक प्रबलता दिखता है। DockPanel-Solution थोड़ा और सुरुचिपूर्ण नहीं होगा? इसे सभी कॉलम परिभाषाओं की आवश्यकता नहीं है। – brgn

उत्तर

45

आप अपने तत्वों के लिए DockPanel.Dock संलग्न गुण सेट और अंतिम तत्व के रूप TextBox छोड़ने की जरूरत:

<RadioButton HorizontalAlignment="Stretch" 
      HorizontalContentAlignment="Stretch"> 
    <DockPanel> 
     <TextBlock DockPanel.Dock="Left" 
        VerticalAlignment="Center" 
        Text="in location:" /> 
     <Button DockPanel.Dock="Right" 
       Margin="10,0,0,0" 
       Padding="3,0" 
       Content="..." /> 
     <TextBox Margin="10,0,0,0"> 
      Path string 
     </TextBox> 
    </DockPanel> 
</RadioButton> 
+3

प्रश्न का शीर्षक 'मध्य' का उल्लेख किया गया है, और उत्तर इसे 'आखिरी' तक ले जाता है। तो कोई बेहतर जवाब क्यों नहीं? –

+9

डॉकपैनेल.डॉक विशेषताओं के कारण टेक्स्टबॉक्स अभी भी मध्य में प्रस्तुत किया जाएगा। एक्सएमएल दस्तावेज़ में इसे अंतिम स्थिति में ले जाने से सिर्फ डब्ल्यूपीएफ नियंत्रण को पैरेंट नियंत्रण की पूरी शेष जगह प्रदान करता है। –

+0

मैंने कोशिश की, लेकिन यह मेरे टैबऑर्डर को खराब कर देता है! चूंकि WPF xaml में ऑर्डर द्वारा डिफ़ॉल्ट टैब इंडेक्स असाइन करता है, इसलिए तत्व को स्थानांतरित करने के लिए बेहतर होगा। – aliceraunsbaek

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

  • कोई संबंधित समस्या नहीं^_^