2010-05-04 8 views
95

मैं सी #/डब्ल्यूपीएफ में अपने ग्रिड पर सीमा कैसे लगा सकता हूं?मैं डब्ल्यूपीएफ में अपने ग्रिड पर सीमा कैसे लगा सकता हूं?

यही वह है जो मैं चाहता हूं, लेकिन मेरे आवेदन में रखे ग्रिड नियंत्रण की बजाय पूरी चीज के चारों ओर एक सीमा रखता है।

<Grid> 
    <Border BorderBrush="Black" BorderThickness="2"> 
     <Grid Height="166" HorizontalAlignment="Left" Margin="12,12,0,0" Name="grid1" VerticalAlignment="Top" Width="479" Background="#FFF2F2F2" /> 
    </Border> 
... and so on ... 
+1

क्या आप "पूरी बात" से क्या मतलब है? मुझे संदेह है कि आपके ग्रिड के अंदर कुछ और है - आपको शायद वह पोस्ट करना चाहिए जो कि है। मेरा संदेह यह है कि आपके पास कुछ प्रकार का डेटाग्रिड नियंत्रण है, साथ ही साथ आपका ग्रिड कंटेनर (जो आपने अपने नमूने में रखा है और संभवतः "पूरी चीज़" शामिल है) और यही वह जगह है जहां भ्रम उत्पन्न होता है। –

उत्तर

171

तुम सिर्फ एक बाहरी सीमा चाहते हैं, सबसे आसान तरीका है एक सीमा नियंत्रण में रख लिए है:

<Border BorderBrush="Black" BorderThickness="2"> 
    <Grid> 
     <!-- Grid contents here --> 
    </Grid> 
</Border> 

संपादित करें:

कारण आप देख रहे हैं सीमा पूरी तरह से अपने नियंत्रण को भरने के लिए है कि, डिफ़ॉल्ट रूप से, यह क्षैतिज संरेखण और लंबवत असाइनमेंट Stretch पर सेट कर रहे हैं। प्रयास करें निम्नलिखित:

<Grid> 
    <Border HorizontalAlignment="Left" VerticalAlignment="Top" BorderBrush="Black" BorderThickness="2"> 
     <Grid Height="166" HorizontalAlignment="Left" Margin="12,12,0,0" Name="grid1" VerticalAlignment="Top" Width="479" Background="#FFF2F2F2" /> 
    </Border> 
</Grid> 

यह आपको मिलना चाहिए आप के बाद क्या कर रहे हैं में अपने ग्रिड नेस्टिंग

+0

यह काम नहीं करता है जैसा कि मैं चाहता हूं ... मैंने अपने प्रश्न में कुछ कोड जोड़ा है। – Jason94

+3

@ जेसन 94: मैंने आपको यह दिखाने के लिए अपना जवाब अपडेट किया कि मुझे क्या लगता है कि आपको क्या लगता है ... –

+0

@ReedCopsey रीड, मुझे आपके समाधान के काम पता हैं, मुझे समझ में नहीं आता है कि सीमा तत्व ग्रिड के अंदर क्यों है तत्व - यह काउंटर अंतर्ज्ञानी नहीं है? धन्यवाद। – Sabuncu

5

(आप सभी 4 पक्षों पर एक मार्जिन डाल करने के लिए ही नहीं, 2 ... चाहते हो सकता है, हालांकि) एक सीमा नियंत्रण

<Border> 
    <Grid> 
    </Grid> 
</Border> 

तो आप ग्रिड (या सीमा) के लिए अपने स्वयं के नियंत्रण टेम्पलेट बनाने के लिए आप क्या चाहते हैं क्या करता है कि करने के लिए जा रहे हैं कि तुम क्या चाहते हो नहीं है।

+0

ओह ... ओकी: डी ने सोचा कि एक वैरिएबल था जिसे मैंने अनदेखा किया था या कुछ फैंसी डब्ल्यूपीएफ (मैं इसमें नया हूं: डी) – Jason94

+0

आप ग्रिड और सीमा के लिए टेम्पलेट नहीं बना सकते क्योंकि उनके पास कोई टेम्पलेट प्रॉपर्टी नहीं है क्योंकि वे नियंत्रण से नहीं ली गई हैं , लेकिन पैनल और सजावट से। [रीड कॉपसी (सुंदर सरल) समाधान है (http://stackoverflow.com/questions/2769291/how-do-i-put-a-border-on-my-grid-in-wpf/2769312#2769312) । – gehho

1

मुझे लगता है कि आपकी समस्या यह है कि मार्जिन सीमा टैग में निर्दिष्ट किया जाना चाहिए, न कि ग्रिड में।

0
<Grid x:Name="outerGrid"> 
    <Grid x:Name="innerGrid"> 
     <Border BorderBrush="#FF179AC8" BorderThickness="2" /> 
     <other stuff></other stuff> 
     <other stuff></other stuff> 
    </Grid> 
</Grid> 

इस कोड "innerGrid" के अंदर एक सीमा लपेटें

+0

यह –

+0

हाय @ElvinMammadov काम नहीं करता है। क्या आप और वर्णन कर सकते हैं। क्या आपको कोई त्रुटि मिल रही है? यह कोड मेरे लिए ठीक काम करता है। – PJ3

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