Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser exemplarischen Vorgehensweise wird erläutert, wie Toolboxsymbole in einer benutzerdefinierten WPF-Steuerelementbibliothek (Windows Presentation Foundation) für unterschiedliche Designer bereitgestellt werden, z. B. für Visual Studio und Expression Blend. Wenn Sie das benutzerdefinierte Steuerelement der Toolbox eines Designers hinzufügen, wird das entsprechende Symbol neben dem Namen des Steuerelements angezeigt.
Der WPF Designer für Visual Studio ermöglicht das Bereitstellen von benutzerdefinierten Toolboxsymbolen für unterschiedliche Designer. Sie können z. B. in Visual Studio und Expression Blend unterschiedliche Symbole für das benutzerdefinierte Steuerelement festlegen. Die von der Entwurfszeitimplementierung bereitgestellten Symbole überschreiben das Standardsymbol in der Laufzeitassembly des Steuerelements.
Im Verlauf dieser exemplarischen Vorgehensweise führen Sie folgende Aufgaben aus:
Erstellen Sie ein benutzerdefinierte WPF-Steuerelementbibliothek-Projekt mit einer eingebetteten Symbolbitmap.
Erstellen Sie eine separate Assembly für Entwurfszeitmetadaten, die das standardmäßige Toolboxsymbol überschreibt.
Testen Sie das Symbol des Steuerelements zur Entwurfszeit.
Wenn Sie dies abgeschlossen haben, wissen Sie, wie zur Entwurfszeit das standardmäßige Laufzeitsymbol für ein benutzerdefiniertes Steuerelement ersetzt wird.
Tipp
Je nach den aktiven Einstellungen oder der Version unterscheiden sich die Dialogfelder und Menübefehle auf Ihrem Bildschirm möglicherweise von den in der Hilfe beschriebenen. Klicken Sie im Menü Extras auf Einstellungen importieren und exportieren, um die Einstellungen zu ändern. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.
Vorbereitungsmaßnahmen
Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:
- Visual Studio 2010.
Erstellen eines benutzerdefinierten Steuerelements mit einem Toolboxsymbol
Um ein benutzerdefiniertes Toolboxsymbol für ein Steuerelement zu erstellen, fügen Sie dem Projekt des Steuerelements ein Bild als eingebettete Ressource hinzu.
So erstellen Sie ein benutzerdefiniertes Steuerelement mit einem Toolboxsymbol
Erstellen Sie ein neues benutzerdefiniertes WPF-Steuerelementbibliothek-Projekt in Visual Basic oder Visual C# mit dem Namen TailspinToysControlLibrary.
Benennen Sie die Codedatei CustomControl1 in TailspinToysControl um.
Fügen Sie ein Toolboxsymbol mit dem Namen TailspinToysControl.icon.bmp als eingebettete Ressource hinzu. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines benutzerdefinierten Toolboxsymbols für ein Steuerelement.
Zeichnen Sie mit dem Text-Tool das Wort DEFAULT in die Bitmap. Dadurch wird gekennzeichnet, wann die Toolbox das Standardsymbol der Steuerelementassembly lädt.
Legen Sie den Ausgabepfad des Projekts auf folgenden Pfad fest: ".. \TailspinToysControlLibrary\bin\".
Erstellen Sie die Projektmappe.
Erstellen der Entwurfszeit-Metadatenassembly
Entwurfszeitcode wird in speziellen Metadatenassemblys bereitgestellt. Für diese exemplarische Vorgehensweise werden die benutzerdefinierten Metadaten von Visual Studio und Expression Blend unterstützt und in einer Assembly mit dem Namen TailspinToysControlLibrary.Design bereitgestellt.
So erstellen Sie die Entwurfszeit-Metadatenassembly
Erstellen Sie eine Entwurfszeitassembly mit dem Namen TailspinToysControlLibrary.Design. Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Bereitstellen von benutzerdefinierten Entwurfszeitmetadaten.
Öffnen Sie die Codedatei RegisterMetadata im Code-Editor.
Ersetzen Sie den automatisch generierten Code durch den folgenden Code. Durch diesen Code wird eine AttributeTable erstellt, mit der die benutzerdefinierten Entwurfszeitattribute an die TailspinToysControl-Klasse angefügt werden.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Windows.Design; using Microsoft.Windows.Design.Features; using Microsoft.Windows.Design.Metadata; using TailspinToysControlLibrary; // The ProvideMetadata assembly-level attribute indicates to designers // that this assembly contains a class that provides an attribute table. [assembly: ProvideMetadata(typeof(TailspinToysControlLibrary.Design.RegisterMetadata))] namespace TailspinToysControlLibrary.Design { internal class RegisterMetadata : IProvideAttributeTable { // Called by the designer to register any design-time metadata. public AttributeTable AttributeTable { get { AttributeTableBuilder builder = new AttributeTableBuilder(); // Set ToolboxBrowsableAttribute to true to display your custom control // in the Toolbox and in the Choose Items... dialog box. builder.AddCustomAttributes(typeof(TailspinToysControl), new ToolboxBrowsableAttribute(true)); return builder.CreateTable(); } } } }Speichern Sie die Projektmappe.
Erstellen der Entwurfszeittoolboxsymbole
Da Sie jetzt über eine Entwurfszeitassembly verfügen, können Sie die benutzerdefinierten Toolboxsymbole erstellen und dem Projekt als eingebettete Ressourcen hinzufügen. Sie erstellen zwei Symbole, eines für Visual Studio und eines für Expression Blend.
So erstellen Sie das Entwurfszeittoolboxsymbol für Visual Studio
Fügen Sie dem TailspinToysControlLibrary.Design-Projekt eine neue Bitmapdatei hinzu. Nennen Sie die Bitmapdatei TailspinToysControlLibrary.TailspinToysControl.VisualStudio.24bit.48x48.bmp.
Legen Sie im Eigenschaftenfenster die Eigenschaft Farben der Bitmap auf 24 bit fest.
Zeichen Sie mit dem Text-Tool das Wort METADATA in die Bitmap. Dadurch wird gekennzeichnet, wann das Symbol über Designermetadaten festgelegt wird.
Wählen Sie die Bitmapdatei im Projektmappen-Explorer aus.
Legen Sie im Eigenschaftenfenster die Eigenschaft Buildvorgang auf Eingebettete Ressource fest.
Fügen Sie dem TailspinToysControlLibrary.Design-Projekt eine neue Bitmapdatei hinzu. Nennen Sie die Bitmapdatei TailspinToysControlLibrary.TailspinToysControl.Expression.4bit.48x48.bmp.
Tipp
Blend lädt nur PNG-Dateien als Symbole, erstellen Sie deshalb das Blend-Symbol mithilfe des externen Paint-Programms.
Klicken Sie mit der rechten Maustaste in die Bildbearbeitung, und wählen Sie Externen Editor öffnen im Kontextmenü aus.
Die Anwendung Paint wird geöffnet.
Zeichnen Sie mit dem Text-Tool das Wort BLEND in die Bitmap. Dadurch wird gekennzeichnet, dass das Symbol im Expression Blend-Fenster Assets verwendet werden soll.
Speichern Sie das Bild als PNG-Datei.
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt TailspinToysControlLibrary.Design, zeigen Sie auf Hinzufügen, und wählen Sie Vorhandenes Element im Kontextmenü aus.
Wählen Sie im Dialogfeld Vorhandenes Element hinzufügen TailspinToysControlLibrary.TailspinToysControl.Expression.4bit.48x48.png aus, und klicken Sie dann auf Hinzufügen.
Wählen Sie im Projektmappen-Explorer die PNG-Bilddatei aus.
Legen Sie im Eigenschaftenfenster die Eigenschaft Buildvorgang auf Eingebettete Ressource fest.
Löschen Sie die leere Bitmapdatei TailspinToysControlLibrary.TailspinToysControl.Expression.4bit.48x48.bmp.
Erstellen Sie die Projektmappe.
Testen der Toolboxsymbole
Testen Sie das benutzerdefinierte Toolboxsymbol, indem Sie TailspinToysControl der Toolbox hinzufügen.
So testen Sie das Toolboxsymbol
Fügen Sie der Projektmappe ein neues WPF-Anwendungsprojekt in Visual Basic oder Visual C# mit dem Namen TestApplication hinzu.
Die Datei MainWindow.xaml wird im WPF-Designer geöffnet. In der Toolbox wird TailspinToysControl auf der Registerkarte TailspinToysControlLibrary-Steuerelemente angezeigt. Das standardmäßige Steuerelementsymbol wird angezeigt.
.png)
Tipp
Das in die Laufzeitassembly des Steuerelements eingebettete Symbol wird nicht angezeigt. Dies ist eine Einschränkung der automatischen Auffüllungsfunktion der Toolbox.
Klicken Sie in der Toolbox mit der rechten Maustaste auf TailspinToysControl, wählen Sie Löschen im Kontextmenü aus, und klicken Sie dann auf OK.
TailspinToysControl wird aus der Toolbox entfernt.
Klicken Sie in der Toolbox mit der rechten Maustaste auf die Registerkarte TailspinToysControlLibrary-Steuerelemente, und wählen Sie dann Elemente auswählen im Kontextmenü aus.
Das Dialogfeld Toolboxelemente auswählen wird geöffnet.
Klicken Sie auf die Registerkarte WPF-Komponenten. Weitere Informationen finden Sie unter Registerkarte "WPF-Komponenten", Dialogfeld "Toolboxelemente auswählen".
Klicken Sie auf Durchsuchen, und navigieren Sie zum Ordner TailspinToysControlLibrary\TailspinToysControlLibrary\bin.
Doppelklicken Sie auf TailspinToysControlLibrary.dll, um die Datei auszuwählen.
Details der TailspinToysControlLibrary-Assembly werden im Dialogfeld Toolboxelemente auswählen angezeigt. Das benutzerdefinierte Entwurfszeitsymbol wird im Gruppenfeld TailspinToysControl angezeigt.
.png)
Klicken Sie auf OK.
TailspinToysControl wird in der Toolbox mit dem Symbol TailspinToysControlLibrary.TailspinToysControl.VisualStudio.24bit.48x48.bmp angezeigt, das Symbol in der Laufzeitassembly wird damit überschrieben.
.png)
Nächste Schritte
Sie können auch das benutzerdefinierte Steuerelement und die Entwurfszeitassembly in Expression Blend laden. Ab Expression Blend 4 wird das Symbol TailspinToysControlLibrary.TailspinToysControl.Expression.4bit.48x48.png im Fenster Assets angezeigt, wenn Sie der Assembly TailspinToysControlLibrary.dll einen Projektverweis hinzufügen.
Sie können Laufzeit- und Entwurfszeitassemblys mit der AssemblyFoldersEx-Registrierungsprozedur bereitstellen. Weitere Informationen finden Sie unter Bereitstellen eines benutzerdefinierten Steuerelements und von Entwurfszeitassemblys.
Siehe auch
Aufgaben
Referenz
Registerkarte "WPF-Komponenten", Dialogfeld "Toolboxelemente auswählen"
Weitere Ressourcen
Exemplarische Vorgehensweise: Bereitstellen von benutzerdefinierten Entwurfszeitmetadaten
Bereitstellen eines benutzerdefinierten Steuerelements und von Entwurfszeitassemblys