Samspill med filer og kataloger på VSTO Word-tillegget i Ribbon.cs

stemmer
0

Vennligst hjelp. Saken det jeg trenger er ganske enkel. Jeg trenger en meny fra filer og mapper. Hvis jeg trykker på mappen (navn), så menyen utvider seg og jeg får liste fra denne mappen og så videre. Jeg prøvde å bruke dropdown og jeg kan komme dit filnavn eller / og mappenavn. Men hvis jeg skal trykke på elementet, vil nedtrekkslisten kaste. (Det er ikke det jeg trenger)

//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 jeg trenger å bruke menyen i stedet for dropdown? Men hvordan kan jeg gjøre det? Kort tid: Jeg har en mappe. Det er filer og mapper i. Jeg trenger en Ribbon knappen for å velge filer og åpne mapper inne i denne knappen.

Publisert på 09/10/2019 klokken 12:58
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Ribbon UI er en statisk ting fra sin fødsel. Den eneste mulige dynamiske endringer kan gjennomføres ved hjelp av båndtilbakeanrop. Dessverre, båndet designer tilgjengelig i VSTO add-ins gir ikke alle funksjonene i Flytende UI, så du må bytte til ved hjelp av en rå XML markup spesifisere callbacks du er interessert i å se. Walkthrough: Opprette en egendefinert kategori ved hjelp Ribbon XML for å komme i gang raskt. Merk, du kan eksportere eksisterende egendefinert brukergrensesnitt til et bånd XML-fil.

Den Flytende UI (aka båndet UI) er beskrevet i dybde i den følgende serie av artikler:

Hvis du vil oppdatere din egendefinerte UI du må bruke IRibbonUI.Invalidate og IRibbonUI.InvalidateControl metoder som gjør det mulig å ugyldig de lagrede verdier for alle kontrollene (eller bare en bestemt en) av Ribbon brukergrensesnitt. Så, når et element er valgt i en kontroll du kan tvinge andre kontroller for å oppdatere status og innhold.

I utgangspunktet, ringe Invalidateeller InvalidateControlmetode du kan tvinge bånd tilbakeanrop for å kunne påberopes nytt. For eksempel, hvis en add-in forfatter implementerer getImagetilbakeringing prosedyre for en knapp, funksjonen kalles en gang, bilde last, og deretter om bildet må oppdateres, er den bufrede bildet brukes i stedet for å minne om prosedyren. Denne prosessen forblir på plass for kontrollen inntil add-i signaler som de lagrede verdiene ikke er gyldige ved hjelp av InvalidateControlfremgangsmåten, ved hvilket tidspunkt, blir den tilbakeringingsprosedyre igjen kalt og retur responsen er bufret.

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

Dessuten kan du finne dynamicMenukontrollen nyttig fordi det gir getContenttilbakeringing som får en XML-streng som inneholder innholdet i denne dynamiske menyen.

Svarte 09/10/2019 kl. 14:43
kilden bruker

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