using WPFluent.Controls; using System.Windows.Automation; using System.Windows.Automation.Peers; namespace WPFluent.AutomationPeers; /// /// Provides UI Automation peer for the CardControl. /// internal class CardControlAutomationPeer(CardControl owner) : FrameworkElementAutomationPeer(owner) { protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Pane; } protected override string GetClassNameCore() { return "CardControl"; } protected override AutomationPeer GetLabeledByCore() { if(owner.Header is UIElement element) { return CreatePeerForElement(element); } return base.GetLabeledByCore(); } protected override string GetNameCore() { var result = base.GetNameCore() ?? string.Empty; if(result == string.Empty) { result = AutomationProperties.GetName(owner); } if(result == string.Empty && owner.Header is DependencyObject d) { result = AutomationProperties.GetName(d); } if(result == string.Empty && owner.Header is string s) { result = s; } return result; } public override object GetPattern(PatternInterface patternInterface) { if(patternInterface == PatternInterface.ItemContainer) { return this; } return base.GetPattern(patternInterface); } }