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