Files
Shrlalgo.RvKits/WPFluent/AutomationPeers/CardControlAutomationPeer.cs

61 lines
1.5 KiB
C#
Raw Normal View History


using WPFluent.Controls;
using System.Windows.Automation;
using System.Windows.Automation.Peers;
namespace WPFluent.AutomationPeers;
/// <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);
}
}