2008-09-16 10 views
10

मुझे लगता है कि सी # मार्जिन संपत्ति का अर्थ सीएसएस में था - नियंत्रण के बाहर के आसपास की दूरी। लेकिन मार्जिन मानों को ध्यान में रखना प्रतीत होता है कि मैं किस मूल्य में प्रवेश करता हूं।.NET Control.Margin प्रॉपर्टी के लिए क्या है?

तब मैं एसडीके पर पढ़ें:

अपने कंटेनर की किनारों से नियंत्रण से दूरी पर कोई प्रभाव नहीं है एक डॉक की गई नियंत्रण पर मार्जिन गुण को सेट।

यह देखते हुए कि मैं रूपों पर नियंत्रण रख रहा हूं, और शायद उन्हें डॉकिंग कर रहा हूं, मार्जिन संपत्ति मुझे क्या प्राप्त करती है?

उत्तर

5

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

उदाहरण के लिए फ़्लोलाउआउट पैनेल या टेबललाउआउट पैनेल का उपयोग करते समय यह बहुत आसान हो सकता है - या तो डिफ़ॉल्ट पैडिंग या स्पेस चीजों को थोड़ा सा कम करने के लिए। जाहिर है, यदि आप एक कस्टम लेआउट प्रदाता लिखते हैं, तो आप मार्जिन का उपयोग कर सकते हैं हालांकि आप फिट देखते हैं।

8

फिलिप रिक की तरह, मार्जिन संपत्ति केवल कंटेनर नियंत्रणों से सम्मानित होती है जो लेआउट का प्रदर्शन करती है। यहाँ एक उदाहरण है कि यह काफी स्पष्ट करता है कि कैसे TableLayoutPanel सम्मान मार्जिन संपत्ति:

using System.Drawing; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 

      TableLayoutPanel pnl = new TableLayoutPanel(); 
      pnl.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); 
      pnl.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50)); 
      pnl.Dock = DockStyle.Fill; 
      this.Controls.Add(pnl); 

      Button btn1 = new Button(); 
      btn1.Text = "No margin"; 
      btn1.Dock = DockStyle.Fill; 

      Button btn2 = new Button(); 
      btn2.Margin = new Padding(25); 
      btn2.Text = "Margin"; 
      btn2.Dock = DockStyle.Fill; 

      pnl.Controls.Add(btn1, 0, 0); 
      pnl.Controls.Add(btn2, 1, 0); 
     } 
    } 
}

मेरा मानना ​​है कि केवल .NET 2.0 में निर्मित नियंत्रण है कि इस संपदा का सम्मान FlowLayoutPanel और TableLayoutPanel कर रहे हैं; उम्मीद है कि तीसरे पक्ष के घटक भी इसका सम्मान करते हैं। यह मूल रूप से अन्य परिदृश्यों में कोई प्रभाव नहीं है।

0

नियंत्रण। यदि आप लेआउट कंटेनर का उपयोग नहीं करते हैं, तो मैन्युअल रूप से नियंत्रण समय पर उपयोगी हो सकता है, बल्कि मैन्युअल रूप से नियंत्रण रखें।

यह मैन्युअल रूप से खींचने वाले नियंत्रणों के बीच की दूरी को प्रभावित करता है जिस पर snaplines appear

उदा।

enter image description here

: - इन (लेबल दोनों ही मामलों में 3 के मार्जिन है)

enter image description here

और 10 के मार्जिन के लिए: पाठ बॉक्स के लिए 3 के डिफ़ॉल्ट मार्जिन मूल्य के लिए आप इस snaplines होता

तो यदि आपके पास यूआई के लिए कुछ सख्त दिशानिर्देश हैं तो आप केवल मार्जिन सेट करें जैसे आपको चाहिए और स्नैपलाइन पर नियंत्रण खींचें।

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