Interactiunea cu fișiere și directoare de pe VSTO Word addin în Ribbon.cs

voturi
0

Te rog ajuta-ma. Ceea ce am nevoie este destul de simplu. Am nevoie de un meniu din fișiere și foldere. Dacă apăs dosarul (numele), apoi meniul se extinde și am obține lista din acel dosar și așa mai departe. Am încercat să folosesc DropDown și eu pot ajunge acolo numele de fișiere sau / și nume dosar. Dar dacă voi apăsa pe element, lista verticală va plia. (Sa nu ceea ce am nevoie)

//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 am nevoie pentru a utiliza meniul în loc de DropDown? Dar cum pot face asta? La scurt timp: Am un dosar. Există fișiere și foldere în interiorul. Am nevoie de un „buton“ Ribbon pentru a alege deschide fișiere și foldere în interiorul acestui „buton“.

Întrebat 09/10/2019 la 12:58
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Ribbon UI este un lucru static de la nașterea sa. Singurele modificări dinamice posibile pot fi puse în aplicare prin utilizarea callbacks panglică. Din păcate, proiectantul Ribbon disponibil în VSTO add-in-uri nu oferă toate caracteristicile Fluent UI, așa că trebuie să treceți la utilizarea unui marcaj XML specificând prime callbacks vă interesează See. Walkthrough: Creați o filă personalizată utilizând Panglica XML pentru a începe rapid. Notă, puteți exporta interfeței de utilizare personalizat existent într - un fișier XML panglică.

Fluent UI (alias Ribbon UI) este descrisă în detaliu în următoarea serie de articole:

Pentru a reîmprospăta UI personalizat trebuie să utilizați IRibbonUI.Invalidate și IRibbonUI.InvalidateControl metode care permit invalidarea valorile stocate în memoria cache pentru toate comenzile (sau doar o specificată) ale interfeței cu utilizatorul Ribbon. Deci, atunci când un element este ales într - un singur control pe care poate forța alte controale pentru a actualiza starea și conținutul său.

Practic, apelarea Invalidatesau InvalidateControlmetoda ar putea forța callback dvs. panglică să fie invocat din nou. De exemplu, dacă un scriitor add-in pune în aplicare getImageprocedura de apel invers pentru un buton, funcția este apelată o dată, încărcarea imaginii, și apoi , dacă imaginea trebuie să fie actualizată, imaginea din cache este utilizată în locul amintind procedura. Acest proces rămâne în vigoare pentru controlul până când semnalele add-in care valorile stocate în memoria cache sunt invalide prin utilizarea InvalidateControlmetodei, în care timp, procedura de apel invers este numit din nou , iar răspunsul retur este stocate în memoria 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

De asemenea, s -ar putea găsi dynamicMenucontrolul util , deoarece oferă getContentapel invers , care devine un șir XML care conține conținutul acestui meniu dinamic.

Publicat 09/10/2019 la 14:43
sursa de către utilizator

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