c# - How to properly refresh a custom shape in WPF? -


मैंने इसके आगे कुछ पाठ के साथ एक कस्टम पंक्ति बनाई है। आकार System.Windows.Shapes.Shape का एक उप वर्ग है। किसी कारण के लिए जब मैं लाइन के लिए निर्देशांक बदलता हूं तो पाठ ताज़ा नहीं होता मैं अमान्य विवेक () दृष्टिकोण के बारे में जानता हूं, लेकिन फिर जब भी मैं तत्वों को चारों ओर ले जाता हूं, मुझे आकार को दोबारा बनाने के लिए कॉल करना होता। मुझे यकीन है कि यह करने का एक बेहतर तरीका है। मैं क्या गलत कर रहा हूं? एटीएम मैं विचारों से बाहर हूं।

  सार्वजनिक वर्ग MyShape: आकृति {LineGeometry line; प्रारूपित पाठ; सार्वजनिक MyShape () {line = new LineGeometry (); पाठ = नया फ़ॉर्मेटेड टेक्स्ट (एज। लांघ। टॉस्ट्रिंग ()), थ्रेड। कस्टमथ्रेड। कंटेंटकल्चर, सिस्टम। विन्डोज। फ्लो डायरेक्शन। लेटटोराइट, नया टाइपफेस ("वर्डाना"), 10, ब्रश। ब्लैक); } // X1 निर्भरता संपत्ति निर्दिष्ट करें: सार्वजनिक स्थिर पढ़ने के लिए निर्भरता प्रॉपर्टी X1Property = DependencyProperty.Register ("X1", टाइपफ (डबल), टाइपफ (माइस्पेप), नया फ्रेमवर्कप्रापर्टीमैटेटाडेटा (0.0, फ्रेमवर्कप्रॉपर्टीमैटडेटाओपेशंसएफ़िफेर्समेजर)); सार्वजनिक डबल X1 {सेट {सेट वैल्यू (X1Property, मान); } {वापसी (डबल) गेटवैल्यू (एक्स 1 प्रॉपर्टी) प्राप्त करें; }} // Y1 निर्भरता संपत्ति निर्दिष्ट करें: सार्वजनिक स्थिर पढ़ने के लिए निर्भरता प्रॉपर्टी Y1Property = DependencyProperty.Register ("Y1", टाइपफ (डबल), टाइपफ (माइस्पेप), नया फ्रेमवर्कप्रापर्टीमैटेटाडेटा (0.0, फ्रेमवर्कप्रॉपर्टीमैटडेटाओपेशंसएफ़िफेर्समेजर)); सार्वजनिक डबल Y1 {सेट {सेट वैल्यू (Y1Property, मान); } {वापसी (डबल) गेटवैल्यू (Y1Property) प्राप्त करें; }} / * कुछ अन्य निर्भरता गुण .... और * / संरक्षित ओवरराइड ज्यामिति परिभाषित जीमेट्री {प्राप्त करें (ज्यामिति समूह ज्यामिति समूह = नया ज्यामिति समूह); Line.StartPoint = नया बिंदु (एक्स 1, वाई 1); लाइन। एन्डपॉईंट = नया बिंदु (एक्स 2, वाई 2); text.SetFontWeight (FontWeights.ExtraLight); ज्यामिति ज्यामिति = पाठ.बिल्ड जीमेट्री (नया बिंदु ((एक्स 1 + X2) / 2, (वाई 1 + 2 2)) 2); geometryGroup.Children.Add (ज्यामिति); geometryGroup.Children.Add (लाइन); वापसी ज्यामिति समूह; }}}}    

उपयोग करने का प्रयास करें

Comments