Empfohlener Beitrag

Microsoft Word 2013: 5 aufregende neuigkeiten

N ach einer Reihe von Einblicken, Microsoft letzten Monat endlich Windows 8 und die hausgebrauten Oberfläche Tablette, die von Windows Ph...

Posts mit dem Label Entwicklung werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Entwicklung werden angezeigt. Alle Posts anzeigen

Dienstag, 9. April 2013

Interessantes über Platzhalter in Word Inhalt Controls (für Entwickler)

Inhalt Kontrollen sind eine hervorragende Möglichkeit, 'prompt' für Benutzer bereitzustellen. Die 'prompt' Text (zB "Klicken Sie hier und geben Sie den Namen des Managers" oder "Wählen Sie das Datum des Berichts") wird durch einen Platzhalter zur Verfügung gestellt.
Dieser Artikel beschreibt einige der Merkwürdigkeiten über diese Platzhalter in das Word-Objektmodell.

PlaceholderText ist ein Objekt, nicht im Text

Ein ContentControl Objekt hat eine PlaceholderText Eigentum. Sie würden für das Denken wäre es ein String zurück vergeben werden. Aber Sie würden falsch sein!
Ein Wort inhaltlicher Kontrolle zu .PlaceholderText ist ein BuildingBlock Objekt.
Um den Platzhaltertext einzustellen, müssen Sie etwas wie:
  MyContentControl.SetPlaceholderText Text: = "Klicken Sie hier und geben Sie den Titel des Berichts" 
Oder können Sie den Platzhaltertext, um auf einen Bereich oder ein bestehendes Gebäude Blocks verweisen.
Um den Platzhaltertext lesen, verwenden Sie die Eigenschaft Value.:
  MsgBox MyContentControl.PlaceholderText.Value 

Die PlaceholderText Objekt ist anfällig für Verschwinden

Sie können nicht auf der Graf PlaceholderText Objekt zur Verfügung stehen. Es kommt häufig verschwindet. So wickeln Sie alle Verweise auf die .PlaceholderText Objekt in irgendeiner Fehlerprüfung. Something like this:
  Dim cc Als ContentControl

     'Angenommen es gibt mindestens einen Inhalt im Dokument
     Set c = ActiveDocument.ContentControls (1)

     'Stellen Sie den Platzhaltertext
     If Not cc.PlaceholderText Is Nothing Then
         cc.SetPlaceholderText Text: = "My Text hier"
     End If

Wort oft nicht wissen, ob ein inhaltlicher Kontrolle zeigt seine Platzhaltertext

Laut Microsoft-Dokumentation, die .ShowingPlaceholderText Immobilie
Gibt einen Boolean, ob der Platzhaltertext für den Inhalt Steuerelement angezeigt wird anzeigt. Read-only.
Meine Erfahrung ist, dass der Rückgabewert für .ShowingPlaceholderText falschen etwa die Hälfte der Zeit ist. Oder ist es richtig, etwa die Hälfte der Zeit.
Manchmal wird das Dokument anzuzeigen den Platzhaltertext, aber .ShowingPlaceholderText wird dies leugnen. Manchmal .ShowingPlaceholderText wird behaupten, dass das Dokument zeigt den Platzhaltertext, aber es ist nicht.
Sie können einfach nicht auf sie verlassen. So, um zu bestimmen, ob das Dokument zeigt den Platzhaltertext, vergleichen Sie die .PlaceholderText.Value mit dem ContentControl.Range.Text .
Allerdings kann man nicht vergleichen Sie den Text des Bildes mit der Platzhalter das Bild. So scheint es nicht möglich, in das Objekt-Modell, ob ein Bild inhaltlicher Kontrolle zeigt die Platzhalter bestimmen.

Einige inhaltlicher Kontrolle kann eine PlaceholderText Objekt, aber kein Platzhaltertext

Image-Steuerelemente, Gruppe Kontrollen und (in Word 2010) Kontrollkästchen-Steuerelemente haben eine PlaceholderText Objekt, aber nie einen .Value , vielleicht aus offensichtlichen Gründen. Seien Sie vorsichtig, dies, wenn Sie durch alle Inhalte Steuerelemente im Dokument Radfahren sind. Das .Value Eigenschaft auf ein Bild angewendet, Gruppe oder Checkbox inhaltlicher Kontrolle einen Fehler zurückgibt (91: "Objektvariable oder With-Block Variable nicht gesetzt ') egal, was die inhaltliche Kontrolle ist in dem Dokument angezeigt wird.

Word nicht korrekt berichten Stil von Platzhaltertext entweder im Objektmodell oder in der Benutzeroberfläche verwendet

Standardmäßig zeigt Word Platzhaltertext mit dem eingebauten Placehoder Text Stil. Sie können diese Art, wie Sie können alle integrierten Absatz-Stil. Das heißt, können Sie ändern den Stil zu machen, grün oder rosa oder unterstrichen oder was auch immer.
Sie können eine andere Absatzvorlage der Platzhaltertext (speziell, muss eine sogenannte verbunden Absatzformat sein) gelten, oder Sie können direkte Formatierung anzuwenden.
Was ich nicht tun kann, ist zu finden jede mögliche Weise zu bestimmen, was Stil Platzhaltertext angewendet wurde.
Und deshalb können wir nicht eine Routine zu "säubern" Inhalte in einem Dokument durch erneutes Auftragen Platzhaltertext zum Inhalt Kontrollen.

Donnerstag, 7. Februar 2013

Design-Modus in Word 2007 und Word 2010: Wie man es erkennen und schalten Sie ihn ein-und ausschalten

Word 2007 und Word 2010 haben eine "Design-Modus"-Taste auf der Registerkarte Entwickler. Es wird verwendet, um Inhalte Steuerelemente zu bearbeiten.
Als Entwickler kann ich will
  • wissen, ob das Dokument im Design-Modus ist
  • schalten Design-Modus ein-oder ausschalten (zum Beispiel, würde ich wollen, dass Design-Modus ausgeschaltet ist, bevor Sie einen Code, der alle Inhalte Kontrollen ändert).
In dem Maße, dass ich bewusst bin, ist hier, wie.

Ist das Dokument im Design-Modus?

Die FormsDesign Eigenschaft eines Dokuments wird Ihnen sagen, ob das Dokument im Design-Modus ist. Zum Beispiel:
  Wenn ActiveDocument.FormsDesign Dann
     MsgBox "Dieses Dokument ist im Design-Modus"
 End If 
Aber diese Eigenschaft nicht von VBA arbeiten in Word. Es funktioniert nur, wenn Sie das Automatisieren von Word sind von außen Word, zum Beispiel läuft ein VSTO-Lösung oder ein COM-Add-in in VB6, oder läuft VBA aus Excel.
Wenn Word 2007 veröffentlicht wurde, gab es einen Workaround für VBA mit dem alten, hidden, veraltete Control Toolbox Befehlsleiste. Steuer-ID 1605 ist das erste Steuerelement auf der alten "Control Toolbox" Befehlsleiste. Die folgende Funktion zurückgegeben den Zustand des aktiven Dokuments:
  Funktion IsDocInDesignMode () As Boolean

 Dim cbc Als CommandBarControl

     Set cbc = Application.CommandBars.FindControl (ID: = 1605)
     IsDocInDesignMode = cbc.State

 End Function
Jedoch, dass Workaround funktioniert nicht mehr in einer vollständig aktualisierten Installation von Word 2007. Und es ist nicht in Word 2010 arbeiten. Nicht nur, dass es nicht funktioniert, nur das Lesen der .State wird Eigenschaft der Schaltfläche Ausschalten Design-Modus!
Also so weit ich sehen kann, gibt es keinen Weg, um aus Word VBA wissen, ob ein Dokument im Design-Modus ist.

Drehen Design-Modus ein-oder ausschalten

Es gibt keinen Befehl in das Word-Objektmodell zum Design-Modus ein-oder auszuschalten. Wir können den Modus mit ActiveDocument.ToggleFormsDesign umzuschalten. So von außen Word, könnten wir auszuschalten Design-Modus mit so etwas wie die folgenden:
  Wenn ActiveDocument.FormsDesign Dann
     "Schalten Sie Design-Modus
     ActiveDocument.ToggleFormsDesign
 End If 
Aber wenn Sie das Ausführen von Code in Word VBA sind, können Sie schalten Sie den Entwurfsmodus Staat, aber Sie haben keine Ahnung, ob es Design-Modus ein-oder auszuschalten.

Erstellen von Bildern, um die Multifunktionsleiste in Word 2007 und Word 2010 anpassen

Die besten Bilder als Kontrollen (zB Tasten) auf der Multifunktionsleiste verwenden:
  • 32 x 32 Pixel und 16 x 16 Pixel
  • in. png-Format
  • mit einem transparenten Hintergrund
  • mit allgemein gedämpften Farben.
Seit jeher hatte Wort Symbolleisten (auch als Befehl Bars bekannt) am oberen Rand des Bildschirms, mit Knöpfen Befehle aufrufen. In Word 2007, dass sich alles verändert. Microsoft führte die Band um Symbolleisten ersetzen.
Entwickler von Vorlagen und Tools können die Multifunktionsleiste durch Hinzufügen neuer Registerkarten, Gruppen-Tasten anpassen, usw. Menüs der Multifunktionsleiste. Diese neue Steuerelemente können benutzerdefinierte Bilder.
Dieser Artikel zeigt Probleme bei der Erstellung von Bildern verwendet, um die Multifunktionsleiste in Word 2007 und Word 2010 anpassen.
Für viele Bilder der Multifunktionsleiste finden Sie Word 2007 und Word 2010: Ribbon Tutorial.

Bildgröße

Es gibt zwei Größen der Bilder in das Anpassen der Multifunktionsleiste verwendet:
  • groß: 32 x 32 Pixel
  • normal: 16 x 16 Pixel.
In Word 2010 können wir ein Bild zu einer Gruppe zuordnen, sowie eine individuelle Steuerung. Gruppe Bilder werden immer bei 16 x 16 Pixel angezeigt.
In der Regel reicht ein 16 × 16 Bild auf einem großen Kontrolle sieht schrecklich aus. In einigen Fällen wird ein 32 × 32 Bild auf einem normal großen Steuerung gut aussehen. Aber manchmal wird es aussehen grauenhaft.
So ist es wichtig, alle Bilder für benutzerdefinierte Steuerelemente in zwei Versionen zu produzieren: von 32 x 32 Pixel und 16 x 16 Pixel.

Bildformat

Es ist möglich, zu verwenden. Jpg,. Jpeg,. Gif,. Wmf,. Bmp,. Ico oder. Png-Dateien, um das Farbband anpassen.
Einige Formate funktionieren besser als andere. Zum Beispiel, wenn Sie eine. Ico-Datei, und verwenden Sie eine Schaltfläche unenable zu zeigen, dass es nicht in irgendeinen Umstand relevant, dann Word kann nicht die Taste als "ausgegraut".
Das beste Format ist PNG, mit einem transparenten Hintergrund, wenn das Bild nicht den gesamten Platz von 32 × 32 Pixel oder 16 x 16 Pixel.
Es ist ein bisschen schwieriger für den Entwickler ein. Png-Datei zu verwenden, weil Sie GDI + verwenden, um es zu laden haben. Aber es lohnt sich für die Bildqualität und Transparenz, png bietet.
Für tehnical Informationen zu Image-Format zu sehen RibbonX Bild FAQ by Eric Faller bei Jensen Harris Blog.

Hintergrund Transparenz

Es ist in Ordnung, wenn das Bild für eine Schaltfläche deckt das gesamte Quadrat. Wenn das Bild nicht deckt den vollen Platz, muss der Hintergrund transparent sein. Und das ist ein Grund, dass eine. Png-Datei gut für Bilder für die Band ist.
Ein schwarzer oder weißer Hintergrund sieht schrecklich aus.
Die Alternative zu einem transparenten Hintergrund wäre, den Hintergrund unseres Schaltflächenbild zu der Farbe des Bandes selbst entsprechen, so dass es in Blends '. Aber das ist nicht möglich, aus zwei Gründen:
  • die Hintergrundfarbe des Bandes in Word 2007 unterscheidet sich von der Band in Word 2010 (und wenn wir für das Jahr 2007 zu entwickeln sind, können wir vernünftigerweise erwarten, dass der Client eine Verbindung zu 2010 1 Tag aktualisieren, und wir würden nicht haben wollen, um wieder erstellen alle Bilder)
  • sowohl in Word 2007 und Word 2010, kann der Benutzer die gesamte Farbschema ändern, so ein Knopf gemacht 'Match' ein Farbschema aussehen wird schlecht, wenn der Benutzer ein anderes Farbschema.
So transparentem Hintergrund sind unerlässlich.
Für weitere technische Informationen über die Transparenz für ribbon Bilder bewahren den Alpha-Kanal bei der Konvertierung von Bildern von Andrew Whitechapel.

Look and Feel

Benutzerdefinierte Bilder am besten aussehen, wenn sie den allgemeinen Look and Feel der eingebauten Bildern.
Es gibt zwei Gründe dafür:
  1. Ich will die Werkzeuge, die ich erstellen zu schauen, wie sie gehören, nicht wie ein schlechtes Haus Erweiterung. Ich bin ein Add-in Bau, kein Add-on! Die Bilder auf meine benutzerdefinierte Werkzeuge sollten schauen, wie sie aus der gleichen Schule wie die eingebauten Bildern kommen.
  2. Wenn ich das Erstellen von benutzerdefinierten Steuerelementen auf der Multifunktionsleiste bin, werde ich zuerst schauen, um zu sehen, ob es einen eingebauten Bild, das ich benutzen kann. Microsoft hat Hunderte von ihnen zur Verfügung gestellt, und es ist oft etwas passendes für meine Bedürfnisse. Wenn ich etwas nicht finden eingebaut, dann werde ich eine benutzerdefinierte Bild. So könnte ich ein Menü mit einem halben Dutzend Tasten und die Schaltflächen können eine Mischung von integrierten und benutzerdefinierten Bilder haben. Deshalb, wie es passt alles zusammen betrachten, finde ich es am besten funktioniert, wenn die benutzerdefinierte Bilder die gleiche Look'n'Feel die eingebauten Bilder haben.

Farben für ribbon Bilder

Es ist sehr einfach zu sehr hässlich Anpassungen für die Multifunktionsleiste erstellen.
Das erste Mal habe ich eine erhebliche benutzerdefinierte Registerkarte auf der Multifunktionsleiste war für ein Projekt ich aus Word 2003 zu Word 2007 Konvertieren wurde. Wo möglich, dass ich meine bestehende Befehlsleiste verwendet werden (dh Toolbar)-Taste Bilder. In einigen Fällen habe ich neue geschaffen.
Der Effekt war schrecklich. Brightly farbigen Tasten, die OK in Word 2003 arbeitete sah grell und fehl am Platz in Word 2007.
Ich denke, es gibt zwei Gründe dafür:
  1. Standardmäßig ist das Farbschema für Word 2007 blau. Und das nicht nur eine blaue, aber eine deutliche Steigung der Blues. Helle Farben auf der Oberseite des blauen einfach nicht funktioniert.
  2. In Word 2003 und davor war eine Symbolleiste ein-dimensional: Knöpfe waren alle die gleiche Größe, und setzte sich in saubere horizontale Zeilen. Während wir Kombinationsfelder und Textfelder auf altmodische Symbolleisten verwenden konnte, war es selten. Die Multifunktionsleiste ist komplexer. Es ist in zwei Dimensionen; Tasten sind nicht alle die gleiche Größe, und es gibt eine Vielzahl von Kontrollen: Buttons, Menüs, Boxen in eingeben, ankreuzen, etc. Die Multifunktionsleiste ist komplex genug. Hinzufügen einer Vielzahl von Farben sah einfach chaotisch.
Ich hatte zu überdenken.
Durch Beobachtung und durch die Verwendung eines On-Screen-Farb-Picker , entdeckte ich, dass die eingebauten Ribbon-Steuerelemente eine sehr kleine Palette von allgemein gedämpften Farben zu verwenden.
Mein Ziel ist es, meine benutzerdefinierten Steuerelemente schauen, wie sie in Word gehören. Also habe ich in der Regel versuchen, um Bilder, die die allgemeine Look'n'Feel der integrierten Steuerungen passen zu verwenden.