2011-06-09 14 views
5

मैं एक ऐप बनाना चाहता हूं जिसमें बाईं तरफ एक सूची बॉक्स है (मैं इसे बाद में अच्छा दिखने के लिए स्टाइल करूंगा)।मैं एक WPF विंडो को दो हिस्सों में कैसे विभाजित करूं?

दाईं ओर पर, मैं एक ऐसा क्षेत्र है जहां मैं नियंत्रण में जोड़ सकते हैं, आदि करना चाहते हैं

तो सवाल यह है कि क्या मैं दो असमान भागों में विंडो विभाजित करने के लिए (बाईं ओर लगभग 350 करने की आवश्यकता है पिक्सल चौड़ी और ऊंचाई पूरी खिड़की होनी चाहिए) और बाकी मेरे "कैनवास" के लिए है।

+0

दाहिने तरफ कैनवास का उपयोग न करें क्योंकि कैनवास अपने बच्चों के लिए लेआउट नहीं रखता है और आपको इसे जल्द या बाद में इसकी आवश्यकता होगी। – Codism

उत्तर

6

आप उपयोग कर सकते हैं एक Grid:

<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="350" /> <!-- Or Auto --> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 
    <ListBox Grid.Column="0" /> 
    <Canvas Grid.Column="1" /> 
</Grid> 

या आप इस्तेमाल कर सकते हैं एक DockPanel:

<DockPanel> 
    <ListBox DockPanel.Dock="Left" Width="350" /> 
    <Canvas /> 
</DockPanel> 

ग्रिड के लाभ आप लेआउट पर बेहतर नियंत्रण है और अंत उपयोगकर्ता की अनुमति दे सकता है GridSplitter का उपयोग करके कॉलम को गतिशील रूप से आकार देने के लिए।

+0

लॉल मैं बस ऐसा कर रहा था !! और आपने हे संपादित किया। ओह अच्छी तरह से पहले से ही पोस्ट>>< संपादित करें: दिलचस्प, मैंने पोस्ट किए जाने पर उत्तर के इस संस्करण को नहीं देखा। यह केवल मेरी पोस्ट के बाद आया था। मुझे लगता है कि आपने अपना पुराना उत्तर नया – Maverik

+0

@Maverik - हाँ, मैंने डॉकपैनल सेकंड के बारे में सोचा था, शायद टैब ऑर्डर का उपयोग करते समय बंद हो सकता है ;-) – CodeNaked

+0

मैंने अभी माना है कि ओपी के बाद से कोई समस्या नहीं होगी यूआई विकास के शुरुआती चरण में प्रतीत होता है जहां वह सिर्फ विवरणों को काम करने के बजाय चीजें देखना चाहता है। मुझे यकीन है कि वह उत्पादन समय के करीब ग्रिड पर समाप्त हो जाएगा क्योंकि यूआई में और जहां टैब ऑर्डर में वास्तव में जाना है, उसके बारे में उसके बारे में विस्तृत जानकारी होगी। – Maverik

4

कोडनेड के समाधान के लिए एक वैकल्पिक दृष्टिकोण डॉकपैनेल का उपयोग करना हो सकता है जहां कैनवास स्वचालित रूप से छोड़ी गई सभी जगह लेता है और आपको विभाजन को बाहर करने की आवश्यकता नहीं होती है।

बेशक इसमें केवल चार किनारों (किनारों पर ढेर होने की संभावना के साथ) डॉकिंग की सीमा है, लेकिन जब मैं प्रारंभिक यूआई बना रहा हूं तो मैं डॉकपनेल पसंद करता हूं क्योंकि वे अपेक्षाकृत तेज़ और आसान सेटअप करते हैं ग्रिड सेटअप के लिए जो जटिल रूप से जटिल हो सकता है।

<DockPanel LastChildFill="True"> 
    <ListBox DockPanel.Dock="Left" Width="350"/> 
    <Canvas /> 
</DockPanel> 
संबंधित मुद्दे

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