2009-10-02 22 views
8

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

StackPanel sp = new StackPanel(); 
sp.Children.Add(someTextBlock); 
sp.Children.Add(element1); 
sp.Children.Add(element2); 
... 
someTextBlock.Text = "Lorem ipsum dolor..." // some text that pushes children of > index down 
// element1 got pushed down to some unknown position based on text length 
// now want to find the Y position of element1 

मैंने देखा है कि इस तरह के तरीकों: स्थिति लौटे StackPanel की स्थिति और नहीं चाइल्ड तत्व मैं लक्षित कर रहा है के बाद से http://forums.silverlight.net/forums/p/16787/55881.aspx#55881 काम नहीं करते।

उत्तर

14

link you posted में विधियों को ठीक काम करना चाहिए, बशर्ते आप उन्हें सही तरीके से कॉल करें।

var transform = element1.TransformToVisual(Application.Current.RootVisual as FrameworkElement);   
Point absolutePosition = transform.Transform(new Point(0, 0)); 
+0

+1: आप element1 से भरा स्थिति दे देंगे इस मामले में, RootVisual को element1 का उपयोग कर -

आप उन्हें सही UIElement के साथ कॉल करने के लिए की जरूरत है। मैं उस उम्र के लिए देख रहा था, वास्तव में सवाल में लिंक का पालन करने के लिए मुझे सही नहीं करता है (मुझे ऐसा करने से नफरत क्यों है?) – AnthonyWJones

+0

कोई विचार है कि एक डब्ल्यूपीएफ आवेदन में स्थिति कैसे प्राप्त करें? –

+0

@eranotzap यह एक WPF अनुप्रयोग में भी काम करता है। http://msdn.microsoft.com/en-us/library/system.windows.media.visual.transformtovisual.aspx –

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