3
我正面臨着ValuePattern的問題。我有以下的代碼:即使支持,也不能使用ValuePattern
ValuePattern valuePattern = null;
try
{
valuePattern = AElement.GetCurrentPattern(ValuePattern.Pattern) as ValuePattern;
valuePattern.SetValue(EditableElement.value[0].ToString());
Debug.WriteLine(AElement.Current.Name + "'s value changed to {0}.", EditableElement.value[0].ToString());
}
catch (InvalidOperationException)
{
Debug.WriteLine("Value pattern not supported for " + AElement.Current.Name);
return;
}
我傳遞一個AutomationElement與controltype.Edit,當我檢查這個元素,我recive這一塊信息:
ControlType.Edit
ValuePatternIdentifiers.Pattern
LegacyIAccessiblePatternIdentifiers.Pattern
A first chance exception of type 'System.InvalidOperationException' occurred in UIAComWrapper.dll
Value pattern not supported
沒有人有任何想法爲什麼它說valuepattern不被支持,而ValuePatternIdentifiers.Pattern被列在GetSupportedPatterns()中?
GetSupportedPattern只是對已知模式列表進行循環,並檢查每個模式的TryGetCurrentPattern。 GetCurrentPattern本身就是TryGetCurrentPattern的一個包裝。你確定你在同一時刻調用GetSupportedPatterns和GetCurrentPattern嗎?如果在GetCurrentPattern調用之前添加GetSupportedPatterns調用,該怎麼辦? –