Ribbon.cs में VSTO वर्ड ऐड पर फाइलों और निर्देशिकाओं के साथ बातचीत

वोट
0

कृपया मदद कीजिए। बात मैं क्या जरूरत है काफी सरल है। मैं फ़ाइलों और फ़ोल्डरों से एक मेनू की जरूरत है। अगर मैं फ़ोल्डर (नाम) दबाएं, फिर मेनू का विस्तार और मुझे लगता है कि फ़ोल्डर और इतने पर से सूची प्राप्त। मैं ड्रॉपडाउन का उपयोग करने की कोशिश की और मैं वहाँ फ़ाइल नाम या / और फ़ोल्डर नाम मिल सकता है। लेकिन अगर मैं आइटम पर प्रेस होगा, ड्रॉप डाउन सूची गुना होगा। (इसकी नहीं है कि मैं क्या जरूरत है)

//dropDown lable is: combo
 DirectoryInfo obj = new DirectoryInfo(@C:\install\);//
            DirectoryInfo[] folders = obj.GetDirectories();
            var filtered = folders.Where(f => !f.Attributes.HasFlag(FileAttributes.Hidden));
            string str = ;
            RibbonDropDownItem ddItem0 = Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem();

            ddItem0.Label = ${str};
            combo.Items.Clear();
            foreach (DirectoryInfo file in filtered)
            {
                str = file.Name;

                RibbonDropDownItem ddItem1 = Globals.Factory.GetRibbonFactory().CreateRibbonDropDownItem();
                ddItem1.Label = $Kaust:{str};
                combo.Items.Add(ddItem1);

Maby मैं ड्रॉपडाउन का बजाय मेनू उपयोग करने की आवश्यकता? लेकिन मैं यह कैसे कर सकते हैं? कुछ ही समय: मैं एक फ़ोल्डर है। वहाँ फ़ाइलों और फ़ोल्डरों के अंदर है। मैं इस बटन के अंदर फाइल और खुले फ़ोल्डरों चुना करने के लिए एक रिबन बटन की जरूरत है।

09/10/2019 को 12:58
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

रिबन यूआई अपने जन्म से एक स्थिर बात है। तभी संभव गतिशील परिवर्तन रिबन कॉलबैक का उपयोग करके लागू किया जा सकता। दुर्भाग्य से, VSTO में रिबन डिजाइनर उपलब्ध ऐड-इन्स, सुविज्ञ यूआई की सभी सुविधाओं प्रदान नहीं करता है तो आप एक कच्चे XML मार्कअप कॉलबैक आप में रुचि रखते हैं को निर्दिष्ट करने के उपयोग पर स्विच चाहिए देखें। पूर्वाभ्यास: रिबन एक्सएमएल का उपयोग करके एक कस्टम टैब बनाएं के लिए जल्दी से शुरू हो रही है। ध्यान दें, यदि आप एक रिबन एक्सएमएल फ़ाइल अपने मौजूदा कस्टम यूआई निर्यात कर सकते हैं।

सुविज्ञ यूआई (उर्फ रिबन यूआई) लेख के निम्नलिखित श्रृंखला में गहराई में वर्णित है:

अपने कस्टम यूआई ताज़ा करने के लिए आप का उपयोग करने की आवश्यकता है IRibbonUI.Invalidate और IRibbonUI.InvalidateControl तरीकों कि रिबन यूजर इंटरफेस का नियंत्रण (या सिर्फ एक निर्दिष्ट एक) के सभी के लिए कैश की गई मूल्यों अमान्य अनुमति देते हैं। इसलिए, जब एक आइटम एक नियंत्रण में चुना जाता है तो आप अपने राज्य और सामग्री अद्यतन करने के लिए अन्य नियंत्रण के लिए मजबूर कर सकते हैं।

मूल रूप से, कॉल Invalidateया InvalidateControlविधि आप अपने रिबन कॉलबैक मजबूर हो सकता है नए सिरे से लागू किया जा करने के लिए। उदाहरण के लिए, एक ऐड-इन लेखक को लागू करता है, तो getImageएक बटन के लिए कॉलबैक प्रक्रिया, समारोह एक बार छवि लोड कहा जाता है, और फिर अगर छवि को अपडेट करना होगा, कैश की गई छवि प्रक्रिया को याद करते हुए की बजाय प्रयोग किया जाता है। यह प्रक्रिया जब तक ऐड-इन संकेतों कि संचय मान का उपयोग करके अमान्य हैं नियंत्रण के लिए ही स्थान पर बनी हुई है InvalidateControlविधि, जो उस समय, कॉलबैक प्रक्रिया फिर से कहा जाता है और बदले प्रतिक्रिया को कैश्ड है।

Dim MyRibbon As IRibbonUI
Sub MyAddInInitialize(Ribbon As IRibbonUI)
    Set MyRibbon = Ribbon
End Sub
Sub myFunction()
‘ Invalidates the caches of all of this add-in’s controls
MyRibbon.Invalidate()

End Sub

इसके अलावा, आप पा सकते dynamicMenuनियंत्रण उपयोगी है क्योंकि यह प्रदान करता है getContentकॉलबैक जो एक XML स्ट्रिंग है कि इस गतिशील मेनू की सामग्री को शामिल हो जाता है।

09/10/2019 को 14:43
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more