मैं संलग्न कोड में मैं इस समस्या को कैसे हल कर सकता हूं? < P> वर्तमान में मैं ऐसा करता हूं: फिर मैं मैन्युअल रूप से UPDATE मैंने इस मुद्दे को हल किया है। अब मैं ऐसा करता हूं: <प्री> उत्तर अपडेट में है: लोडेड इवेंट का उपयोग करें। Adorner के लिए
FrameworkElement बनाना चाहता हूं लेकिन मेरे तत्व के लिए
null
propertyChangedClallback
AdornerLayer में
निजी स्थिर शून्य _ऑन मॉडल मौद्रिक अत्याधुनिक प्रॉपर्टी परिवर्तित (निर्भरता ऑब्जेक्ट डी, निर्भरता प्रॉपर्टी बदलते ईवेंट्स ई) {var element = d को फ्रेमवर्क एलेमेंट के रूप में; बूल पुरानावैल्यू = (बूल) ई। ओल्ड वैल्यू; Bool newValue = (bool) e.NewValue; अगर (रिक्त! = तत्व & amp; पुरानावैल्यू! = नयावाले) {var वर्णनकर्ता = निर्भरता प्रपत्र Descriptor.FromProperty (दृश्यता प्रॉपर्टी, प्रकार (फ्रेमवर्क एलेमेंट)); If (newValue) {discriptor.AddValueChanged (तत्व, element_VisibilityChanged); } अन्य {डिस्क्रिप्टर। RemoveValueChanged (तत्व, element_VisibilityChanged); }} निजी स्थिर शून्य तत्व / दृश्यता परिवर्तित (ऑब्जेक्ट प्रेषक, EventArgs ई) {var तत्व = फ़्रेमवर्क एलेमेंट के रूप में प्रेषक; अगर (शून्य! = तत्व) {var adornerLayer = AdornerLayer.GetAdornerLayer (तत्व); If (null! = AdornerLayer) {// चेक अगर adorner मौजूद है boolExists = false; Var adorners = adornerLayer.GetAdorners (तत्व); यदि (रिक्त! = श्लोक) (विदेशी) (एडॉर्नर्स में अलग-अलग) (यदि (एडोर्नर मोडल एडॉर्नर है) {ईक्सिस्ट्स = सच है; टूटना; }}} // जोड़ अगर अगर प्रस्तुत नहीं किया गया है (! हैइज़िस्ट्स) {var modalAdorner = नया मोडल एडॉर्नर (तत्व); adornerLayer.Add (modalAdorner); Var दृश्यता बाध्यकारी = नया बाध्यकारी {पथ = नया गुणपथ ("दृश्यता"), स्रोत = तत्व}; ModalAdorner.SetBinding (दृश्यता प्रॉपर्टी, दृश्यताबदल); }}}}
दृश्यता संपत्ति को अपने
FrameworkElement से
छुपा और फिर उसके बाद के लिए <
दर्शनीय । लेकिन यह वास्तव में सच नहीं है।
निजी स्थिर शून्य _ऑनआइएमएसमॉडलअडमर्नेरेटेडप्रॉपर्टी परिवर्तन (निर्भरता ऑब्जेक्ट डी, डिस्पेंन्सीपॉर्फ़टी चेंजेडएवेंटएरग्स ई) {var तत्व = डी के रूप में फ्रेमवर्क एलेमेंट; बूल पुरानावैल्यू = (बूल) ई। ओल्ड वैल्यू; Bool newValue = (bool) e.NewValue; अगर (शून्य! = तत्व & amp; पुराना मूल्य! = नया मूल्य) {यदि (नया मूल्य) {if (element.IsLoaded) {_AttachAdorner (तत्व); } और {element.Loaded + = (प्रेषक, आर्ग्स) = & gt; {_AttachAdorner (तत्व); }; }} और {// निकालें adorner var adornerLayer = AdornerLayer.GetAdornerLayer (तत्व); अगर (रिक्त! = शिलालेख लेयर) {var adorners = adornerLayer.GetAdorners (तत्व); यदि (रिक्त! = श्लोक) (विदेशी) (एडॉर्नर्स में अलग-अलग) (यदि (एडोर्नर मोडल एडॉर्नर है) {एडॉर्नर लायर। रेव (एडॉर्नर); }}}}}}}}
Comments
Post a Comment