2012-03-14 24 views
5

मैं सोच रहा था कि आप टेक्स्टब्लॉक के हाशिए को प्रोग्रामेटिक रूप से कैसे सेट कर सकते हैं? मेरे पास तारों की एक सूची है, कि मैं प्रत्येक टेक्स्टब्लॉक को असाइन करना चाहता हूं और प्रत्येक टेक्स्टब्लॉक के बीच एक अंतर के साथ प्रत्येक को एनिमेट करना चाहता हूं। अभी, सभी टेक्स्टब्लॉक एक ही पंक्ति पर हैं, इसलिए मैं यह नहीं कह सकता कि पाठ क्या कहता है।प्रोग्रामेटिक रूप से टेक्स्टब्लॉक मार्जिन सेट करें

foreach (var i in item.Items) 
{ 
    TextBlock tb = new TextBlock(); 
    tb.Height = 50; 
    tb.Width = 900; 
    tb.Text = i.Title + "\n"; 

    SlideDown(tb); 
    canvas.Children.Add(tb); 
} 

public void SlideDown(FrameworkElement uc) 
{ 
    ThicknessAnimation tAnimation = new ThicknessAnimation(); 
    tAnimation.Duration = new Duration(TimeSpan.FromSeconds(5.0)); 
    tAnimation.From = new Thickness(0,0,0,0); 
    tAnimation.To = new Thickness(0, 500, 0, 500); 
    Storyboard.SetTarget(tAnimation, uc); 
    Storyboard.SetTargetProperty(tAnimation, new PropertyPath(FrameworkElement.MarginProperty)); 
    Storyboard storyboard = new Storyboard(); 
    storyboard.Children.Add(tAnimation); 
    storyboard.Begin(uc); 
} 

उत्तर

15

आप इस तरह Margin गुण सेट कर सकते हैं:

double left = 1, top = 2, right = 3, bottom = 4; 
    textBlock.Margin = new Thickness(left, top, right, bottom); 

या आप एक ही मूल्य सब से ऊपर पर लागू होता है जो निर्दिष्ट कर सकते हैं:

double all = 5; 
    textBlock.Margin = new Thickness(all); 
3

मार्जिन संपत्ति here देखें।

tb.Margin = new Thickness(10); 
+0

मैंने कोशिश की है कि है, लेकिन सभी पाठ अभी भी एक ही लाइन पर है? – Michael

+1

असल में नहीं, यह सही है, लेकिन प्रत्येक टेक्स्टब्लॉक जोड़ने के बाद मुझे मार्जिन में वृद्धि करना है ताकि टेक्स्ट अलग मार्जिन पर हो। फिर भी धन्यवाद। :) – Michael

+0

खुशी हुई इससे मदद मिली! –

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