2016-09-08 4 views

Antwort

0

Zunächst sollten Sie nicht auf UI-Steuerelemente von sekundären Threads zugreifen. Änderungen an der Benutzeroberfläche dürfen nur im Hauptthread vorgenommen werden. Sie können in Betracht ziehen, die Control.Invoke-Methode zu verwenden, die einen Delegaten für den Thread ausführt, der das zugrunde liegende Fensterhandle des Steuerelements besitzt.

Zweitens ist die Fluent UI (aka Ribbon UI) eine statische Sache von seiner Geburt an. Die einzige mögliche Dynamik ist Callbacks. Daher würde ich empfehlen, Callbacks mit den Methoden Invalidate oder InvalidateControl von IRibbonUI zu verwenden. Werfen Sie einen Blick auf die folgenden Artikel für den Beispielcode:

Für jede der Rückrufe die Add-In implementiert, werden die Antworten zwischengespeichert. Wenn beispielsweise ein Add-In-Writer die Callback-Prozedur getImage für eine Schaltfläche implementiert, wird die Funktion einmal aufgerufen, das Image wird geladen, und wenn das Image aktualisiert werden muss, wird das zwischengespeicherte Image verwendet, anstatt die Prozedur aufzurufen. Dieser Prozess bleibt an Ort und Stelle, bis das Add-In signalisiert, dass die zwischengespeicherten Werte ungültig sind, indem die Invalidate-Methode verwendet. Zu diesem Zeitpunkt wird die Rückrufprozedur erneut aufgerufen und die Antwort wird zwischengespeichert.

das fließfähige UI (aka Ribbon UI) wird ausführlich in der folgenden Reihe von Artikeln beschrieben:

Verwandte Themen