Interactie met bestanden en mappen op VSTO Word addin in Ribbon.cs

stemmen
0

Help alstublieft. Het ding wat ik nodig heb is heel simpel. Ik heb een menu van bestanden en mappen. Als ik op de map (naam), dan is het menu uit en ik krijg de lijst van die map en ga zo maar door. Ik heb geprobeerd om DropDown gebruiken en ik kan er de bestandsnamen en / of mapnamen. Maar als ik zal aandringen over het product, de keuzelijst zal folden. (Het is niet wat ik nodig heb)

//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 Ik moet Menu gebruiken in plaats van DropDown? Maar hoe kan ik dat doen? Kort: Ik heb een map. Er is bestanden en mappen binnen. Ik heb een Lint knop om bestanden en mappen openen koos in deze button.

De vraag is gesteld op 09/10/2019 om 12:58
bron van user
In andere talen...                            


1 antwoorden

stemmen
0

Ribbon UI is een statische ding van zijn geboorte. De enige dynamische veranderingen kunnen worden uitgevoerd door middel lint callbacks. Helaas, het lint ontwerper beschikbaar in VSTO add-ins voorziet niet alle functies van de Fluent UI, dus je moet overschakelen naar het gebruik van een ruwe XML-opmaak specificeren callbacks u geïnteresseerd bent bekijken. Walkthrough: Maak een aangepast tabblad door gebruik te maken van het Lint XML om aan de slag snel aan de slag. Let op, u kunt uw bestaande aangepaste UI te exporteren naar een lint XML-bestand.

Vloeiend de UI (aka Ribbon UI) wordt beschreven in diepte in de volgende serie artikelen:

Als u de aangepaste UI vernieuwen moet je de te gebruiken IRibbonUI.Invalidate en IRibbonUI.InvalidateControl methoden die het mogelijk maken ongeldig maken van de cache opgeslagen waarden voor alle van de controles (of gewoon een gespecificeerde) van de Ribbon gebruikersinterface. Dus, wanneer een item wordt gekozen in een controle die u kunnen andere controles dwingen zijn toestand en inhoud bij te werken.

Kortom, het aanroepen van de Invalidateof InvalidateControlmethode kunt u uw lint callbacks dwingen om opnieuw te worden ingeroepen. Bijvoorbeeld, als een add-in schrijver voert de getImagecallback procedure voor een knop, de functie wordt een keer genoemd, de afbeelding is geladen, en dan, als het beeld moet worden bijgewerkt, wordt de cache opgeslagen afbeelding gebruikt in plaats van herinnerend aan de procedure. Dit proces blijft voor de besturing totdat de add-in signalen die de cache waarden ongeldig zijn met de InvalidateControlwerkwijze, op welk moment wordt de callback procedure opnieuw opgeroepen en het rendement respons cache.

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

Ook kunt u het vinden dynamicMenucontrole nuttig omdat het de getContentcallback die een XML-tekenreeks die de inhoud van deze dynamische menu bevat krijgt.

antwoordde op 09/10/2019 om 14:43
bron van user

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