2013-02-25 17 views
5

मैं जानना चाहता हूं कि नियंत्रण कब उपयोगकर्ता के लिए चिपचिपा होता है और कब नहीं?उपयोगकर्ता को नियंत्रण कब दिखाई देता है जब पता लगाने के लिए कैसे?

मान लें कि मैं एक कस्टम नियंत्रण लिख रहा हूं जो TextBox बढ़ाता है और मैं जानना चाहता हूं कि दिखाई देने वाले हैंडलर के अंदर कुछ कस्टम तर्क करने के लिए कब दिखाई दे रहा है।

ऐसा कैसे करें? यह पता लगाने के लिए कि नियंत्रण उपयोगकर्ता के लिए दृश्यमान है या नहीं? TextBox का विस्तार करने वाला कस्टम नियंत्रण उदाहरण के लिए Button के अंदर हो सकता है और ButtonVisibility.Collapsed प्राप्त कर सकता है, इसलिए इसके सभी आंतरिक घोंसले नियंत्रण आविष्कार किए जाएंगे और जो मैं जानना चाहता हूं। दृश्यमान संपत्ति को निर्धारित करने के लिए कोई फर्क नहीं पड़ता कि दृश्यमान संपत्ति का मूल्य क्या है?

उत्तर

9

आपको UIElement.IsVisibleChanged ईवेंट का उपयोग करना चाहिए। ऐसा तब होता है जब IsVisible के मान में परिवर्तन केवल पढ़ने वाली निर्भरता संपत्ति होती है और यूआई पर तत्व दृश्यता को इंगित करती है।
UIElement.LayoutUpdated - ईवेंट जो दृश्यता दृश्यता को पुन: गणना के लिए उपयोग किया जा सकता है।

अद्यतन। लगता है जैसे कि यह सटीक डुप्लिकेट है:
In WPF, how can I determine whether a control is visible to the user?

+0

मैं अपने सवाल का संपादन किया। मैं दृश्यता संपत्ति के बारे में बात नहीं कर रहा हूं। मैं सामान्य रूप से दृश्यता के बारे में बात कर रहा हूं। IsVisibleChanged के लिए आपका लिंक बीटीडब्ल्यू –

+0

@hedgehog ठीक काम नहीं कर रहा है। अब मैं देखता हूं कि तुमने क्या किया। अपडेट किया गया। –

+0

यह सिर्फ एक तरीका है जिसे मुझे स्पष्ट रूप से कॉल करने के लिए स्पष्ट रूप से कॉल करना है। यदि दृश्यमान है या नहीं तो मैं WPF द्वारा अधिसूचित होना चाहता हूं। –