优化更新代码,添加界面功能并整合
This commit is contained in:
62
WPFluent/Controls/CardAction/CardActionAutomationPeer.cs
Normal file
62
WPFluent/Controls/CardAction/CardActionAutomationPeer.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
|
||||
|
||||
|
||||
using System;
|
||||
using System.Linq;
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user