58 lines
1.5 KiB
C#
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);
|
|
}
|
|
}
|