In WinForms konnte ich einer benutzerdefinierten Steuerelementeigenschaft ein Attribut [Category] hinzufügen, um anzugeben, welche Eigenschaftskategorie die Eigenschaft enthalten sollte. Wie mache ich das in WPF? DankeFestlegen der Eigenschaftentyp für das benutzerdefinierte WPF-Steuerelement?
Antwort
Ich habe festgestellt, dass Sie nicht haben, um eine Entwurfszeit-DLL einzufügen, um einer benutzerdefinierten Steuerelementeigenschaft ein [Category] -Attribut hinzuzufügen. Das ist eine Möglichkeit, wie es gemacht werden kann, aber tatsächlich können Sie jedes .NET-Attribut verwenden, genau wie in WinForms. Zum Beispiel:
/// <summary>
/// The image displayed by the button.
/// </summary>
/// <remarks>The image is specified in XAML as an absolute or relative path.</remarks>
[Description("The image displayed by the button."), Category("Common Properties")]
public ImageSource Image
{
get { return (ImageSource)GetValue(ImageProperty); }
set { SetValue(ImageProperty, value); }
}
Sie müssen eine "Metadaten-Assembly" bereitstellen, die auch als "Entwurfszeit-DLL" bezeichnet wird. Dies ist eine Assembly mit demselben Namen wie Ihre Hauptbaugruppe, an die .Design angehängt ist (z. B. MyCompany.MyControls.Design.dll) und die eine Klasse enthält, die IRegisterMetadata implementiert. Die IRegisterMetadata-Implementierung erstellt eine Attributtabelle für die verschiedenen Komponenten in Ihrer Hauptbaugruppe und fügt diese einem MetadataStore hinzu.
Für vollständige Informationen und Beispiele, siehe Blog-Beiträge von Jim Nakashima des Cider-Teams here und here.
Dokumentation siehe WPF Designer Extensibility in MSDN.
- 1. Informationen zum Eigenschaftentyp Hibernate NamingStrategy
- 2. Benutzerdefinierte Dialogfelder festlegen
- 3. Festlegen der Position für benutzerdefinierte CollectionEditor-Formular in WinForms
- 4. Festlegen der Größe für die benutzerdefinierte Benutzeroberfläche in ios
- 5. Benutzerdefinierte Poststandardsprache festlegen
- 6. Priorität für benutzerdefinierte seriell asynchrone Warteschlange festlegen
- 7. Festlegen der prozentualen Breite für das Span-Element
- 8. Bild und Titel für das Element der Leiste festlegen?
- 9. Festlegen der Umgebung für System.in
- 10. Festlegen der Form der Hintergrundfarbe auf die benutzerdefinierte Farbe
- 11. Festlegen der Dateinameneigenschaft für TOpenFileDialog
- 12. Das Feld für den jQuery-Inhaltstyp festlegen
- 13. Festlegen der HasDropShadow-Eigenschaft für ein Popup
- 14. Wie benutzerdefinierte Einzug Zeileneinzug in Vim für Java-Quelldateien festlegen
- 15. Benutzerdefinierte Authentifizierungsstrategie für das Gerät
- 16. Warum das Zeitlimit für Formularauthentifizierung länger als das Sitzungstimeout festlegen?
- 17. Chrome benutzerdefinierte Registerkarten. Mehrere Elemente in der Symbolleiste festlegen
- 18. Hintergrundfarbe für Dialog Titelleiste festlegen?
- 19. Festlegen der Kontrollkästchen Rahmenfarbe
- 20. Festlegen der Rahmenfarbe für den FloatingActionButton in der Unterstützungsbibliothek
- 21. Wie benutzerdefinierte Header "Host" in HttpWebRequest festlegen?
- 22. Wie Sie benutzerdefinierte Header mit web.config festlegen?
- 23. Festlegen der Reihenfolge für Abhängigkeitseigenschaften Callback-Änderungsmethoden?
- 24. Festlegen der Standardseitengröße für JPA-Umlagerungsobjekt
- 25. Programmgesteuertes Festlegen der Zieladresse für java.util.logging
- 26. Festlegen der Schreibberechtigung für Registrierungsschlüssel mit .NET
- 27. Festlegen der Priorität für Anwendungspools in IIS
- 28. Benutzerdefinierte vim-Syntax erstellen: Kann ich benutzerdefinierte Regeln für automatische Einrückungen festlegen?
- 29. Dynamisches Festlegen der Berechtigung für eine Rolle
- 30. Festlegen der VerticalAlignment-Eigenschaft für alle Steuerelemente