← ClaudeAtlas

developing-wpf-customcontrolslisted

Develops WPF CustomControls using Parts and States Model best practices. Use when creating templatable controls with TemplatePart, TemplateVisualState, OnApplyTemplate, or VisualStateManager.
christian289/dotnet-with-claudecode · ★ 41 · Data & Documents · score 73
Install: claude install-skill christian289/dotnet-with-claudecode
# WPF CustomControl Development - Parts and States Model Workflow for developing WPF CustomControls with appearance customization capability. ## Development Flow ### 1. Control Inheritance Decision ``` UserControl Selection Criteria: - Need rapid development - ControlTemplate customization not required - Complex theme support not required Control Inheritance Selection Criteria: - Need appearance customization via ControlTemplate - Need various theme support - Need same extensibility as WPF built-in controls ``` ### 2. Define Control Contract Declare `TemplatePart` and `TemplateVisualState` attributes on the class: ```csharp [TemplatePart(Name = PartUpButton, Type = typeof(RepeatButton))] [TemplatePart(Name = PartDownButton, Type = typeof(RepeatButton))] [TemplateVisualState(Name = StatePositive, GroupName = GroupValueStates)] [TemplateVisualState(Name = StateNegative, GroupName = GroupValueStates)] [TemplateVisualState(Name = StateFocused, GroupName = GroupFocusStates)] [TemplateVisualState(Name = StateUnfocused, GroupName = GroupFocusStates)] public class NumericUpDown : Control { // Define Part/State names as const private const string PartUpButton = "PART_UpButton"; private const string PartDownButton = "PART_DownButton"; private const string GroupValueStates = "ValueStates"; private const string GroupFocusStates = "FocusStates"; private const string StatePositive = "Positive"; private const string StateNegative = "Negative"; private