2011-10-26 13 views
8

मेरे पास मेरी विंडो में छवि नियंत्रण है। इस छवि नियंत्रण का आकार "ऑटो" पर सेट है।WPF नियंत्रणों का वर्तमान आकार प्राप्त करना

<Image x:Name="videoImg" Stretch="Fill" Height="Auto" Width="Auto" /> 

जब मैं पहुंच प्राप्त करने का प्रयास करता हूं, तो यह 0 लौटाता है। इस नियंत्रण के वास्तविक आकार को कैसे देखें? यह खिड़की के साथ आकार बदलता है।

उत्तर

15

आप .ActualHeight और .ActualWidth उपयोग कर सकते हैं प्रदान की गई Height/एक नियंत्रण

+0

मैंने ऐसा करने की कोशिश की है। लेकिन परिणाम वही है ( –

+0

@TimurMustafaev आप मूल्यों को प्राप्त करने की कोशिश कैसे कर रहे हैं? पीछे कोड के माध्यम से? बाध्यकारी के माध्यम से? और आप मूल्य प्राप्त करने का प्रयास कब कर रहे हैं? नियंत्रण को 'वास्तविक ह्यू' और 'वास्तविक विड्थ' से पहले प्रस्तुत किया जाना चाहिए ।। एक आकार वापस आ जाएगी – Rachel

+0

मैं अपने MainWindow से नए रूप फोन इस नए रूप पर fiew नियंत्रण देखते हैं और उनमें से एक छवि है खिड़की के बाद लोड मैं इस तरह आकार प्राप्त करने की कोशिश:। _imageControl.ActualWidth या _imageControl।ActualHeigh –

3

बात है, Width और Height गुण आप इच्छित आकार व्यक्त करते हैं, जबकि क्या आप चाहते हैं प्रदान की गई है जाने की Width पाने के लिए आकार - ActualWidth और ActualHeight गुणों का उपयोग करके जिसे एक्सेस किया जा सकता है (लेकिन सेट नहीं किया जा सकता)।

यह ध्यान दिया जाना चाहिए कि इन स्थिर मान या तो नहीं कर रहे हैं, कि है, एक बार सेट वे आवश्यक रूप से हमेशा के लिए के बाद ही हो सकता है, जा रहा नहीं कर रहे हैं के रूप में यह प्रत्येक प्रतिपादन अनुक्रम पर फिर से मूल्यांकन किया जाएगा ...

क्योंकि [ActualHeight/ActualWidth] परिकलित मूल्य है, तो आप कई या वृद्धिशील लेआउट प्रणाली द्वारा विभिन्न कार्यों की एक परिणाम के रूप में यह करने के लिए परिवर्तन की सूचना दी हो सकता है कि बारे में पता होना चाहिए। लेआउट सिस्टम बच्चे तत्वों के लिए आवश्यक माप स्थान की गणना कर सकता है, मूल तत्व द्वारा बाधाएं, और इसी तरह।

तो, आपकी आवश्यकताओं के आधार पर, आप उचित डेटा पर अपने डेटा का पुनः मूल्यांकन करने पर विचार करना चाहेंगे, उदाहरण के लिए, जब नियंत्रण नियंत्रण आकार बदलता है।

1

जबकि कुछ डब्ल्यूपीएफ नियंत्रण रखे और प्रस्तुत किए जाने पर सभी उपलब्ध स्थान भरते हैं, अन्य लोग नहीं करते हैं। विशेष रूप से, छवि नियंत्रण एक प्रकार का नहीं है जो अपने आकार को अपने आप स्थापित करता है, यानी, जब आप नियंत्रण के आकार को चौड़ाई/ऊंचाई विशेषताओं या पसंद के साथ स्पष्ट रूप से निर्दिष्ट नहीं करते हैं।

लेकिन ग्रिड नियंत्रण आकार-परिभाषित विशेषताओं की कमी के दौरान सभी उपलब्ध स्थान को भर देता है। विजुअल स्टूडियो में पृष्ठ/विंडो टेम्पलेट में पृष्ठ/विंडो रूट नियंत्रण के बच्चे के रूप में ग्रिड नियंत्रण होता है, और जब उपयोगकर्ता किसी ग्राफिकल संपादक में किसी पृष्ठ पर नियंत्रण रखना शुरू करता है, तो उपयोगकर्ता द्वारा जोड़े गए नियंत्रण पहले इस ग्रिड के बच्चे बन जाते हैं नियंत्रण।

यदि आपने वीएस टेम्पलेट का उपयोग किया है, और आपका छवि नियंत्रण कहा गया ग्रिड नियंत्रण का बच्चा है, तो अपने ग्रिड को एक्स: नाम विशेषता के साथ नाम दें, और आप अपनी जरूरतों के लिए ग्रिड की वास्तविक Width/ऊंचाई गुणों का उपयोग कर सकते हैं कोड-बैक, क्योंकि छवि नियंत्रण अपने माता-पिता ग्रिड आकार तक बढ़ता है - बशर्ते आप इसका आकार स्पष्ट रूप से या अन्यथा निर्दिष्ट न करें, यानी, छवि सामग्री सेट करना।

वैसे, अंतर्निहित नियंत्रणों का आकार बदलना व्यवहार बदला जा सकता है। आप नियंत्रण को संशोधित कर सकते हैं और इसी निर्भरता गुणों को ओवरराइड कर सकते हैं। उदाहरण के लिए, https://stackoverflow.com/a/6094993 देखें।

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