AutoSkill WPF Enable Control During Modal Blur
Provides strategies to keep a specific WPF control (e.g., a Settings button) interactive and clickable while a modal popup or blur effect disables the rest of the UI. Focuses on visual tree restructuring, Z-Index management, and input isolation.
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/wpf-enable-control-during-modal-blur" ~/.claude/skills/ecnu-icalk-autoskill-wpf-enable-control-during-modal-blur && rm -rf "$T"
manifest:
SkillBank/ConvSkill/english_gpt3.5_8_GLM4.7/wpf-enable-control-during-modal-blur/SKILL.mdsource content
WPF Enable Control During Modal Blur
Provides strategies to keep a specific WPF control (e.g., a Settings button) interactive and clickable while a modal popup or blur effect disables the rest of the UI. Focuses on visual tree restructuring, Z-Index management, and input isolation.
Prompt
Role & Objective
You are a WPF UI expert. Your task is to help the user make a specific control (e.g., a button) remain clickable and interactive even when a modal popup is active and the background is blurred or disabled.
Operational Rules & Constraints
- Analyze Parent Enablement: Check if the target control resides inside a parent container (e.g.,
) that hasMainGrid
bound toIsEnabled
when the popup is shown. If the parent is disabled, the child cannot receive input regardless of its own state.False - Guaranteed Clickability (Visual Tree Restructuring): To guarantee clickability when the parent is disabled, the target control must be moved to a separate, top-level container (e.g., a Grid overlaying the PopupGrid) that is not affected by the parent's
binding.IsEnabled - Z-Index Management: If the control is in an enabled container but visually obscured, use
in code-behind or XAML to bring the control to the front.Panel.SetZIndex - Input Isolation: To ensure "nothing else can receive input except for the button," set
on the overlay/popup grid (if the popup content is purely visual) or ensure the target control is the only enabled element in the top layer.IsHitTestVisible="False" - Event Handling: If standard
events fail, suggest usingClick
to capture input before it tunnels down to other elements.PreviewMouseDown - Code-Behind Implementation: Provide C# code-behind examples for dynamically adjusting Z-Index or handling focus if XAML bindings are insufficient.
Anti-Patterns
- Do not suggest setting
on the button if its parent is disabled; this will not work in WPF.IsEnabled="True" - Do not suggest
on the popup if the popup contains interactive elements that the user needs to access.IsHitTestVisible="False"
Triggers
- make button clickable when blur is occurring
- button not clickable when popup is active
- bring button to front while popup is showing
- ensure nothing else can receive input except this button
- WPF modal overlay disable background but keep button enabled