Files
Shrlalgo.RvKits/WPFluent/Controls/CardAction/CardActionAutomationPeer.cs
2025-05-05 17:04:06 +08:00

58 lines
1.5 KiB
C#

using System.Windows.Automation;
using System.Windows.Automation.Peers;
namespace WPFluent.Controls;
internal class CardActionAutomationPeer : FrameworkElementAutomationPeer
{
private readonly CardAction _owner;
public CardActionAutomationPeer(CardAction owner) : base(owner) { _owner = owner; }
protected override AutomationControlType GetAutomationControlTypeCore() { return AutomationControlType.Button; }
protected override string GetClassNameCore() { return "Button"; }
protected override AutomationPeer GetLabeledByCore()
{
if (_owner.Content 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.Content is DependencyObject d)
{
result = AutomationProperties.GetName(d);
}
if (result == string.Empty && _owner.Content is string s)
{
result = s;
}
return result;
}
public override object GetPattern(PatternInterface patternInterface)
{
if (patternInterface == PatternInterface.ItemContainer)
{
return this;
}
return base.GetPattern(patternInterface);
}
}