Files
Shrlalgo.RvKits/WPFluent/Controls/CardControl/CardControlAutomationPeer.cs
2025-04-24 20:56:44 +08:00

63 lines
1.5 KiB
C#

using System.Windows.Automation;
using System.Windows.Automation.Peers;
using WPFluent.Controls;
namespace WPFluent.Controls;
/// <summary>
/// Provides UI Automation peer for the CardControl.
/// </summary>
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);
}
}