RangeValuePattern控件模式用于支持可设置为某个范围内值的控件。使用方法RangeValuePattern.SetValue设置与UI自动化元素关联的值。
示例:
public static void TestRangeValuePattern()
{
//Launch Volume Control
Process volume = Process.Start(@"C:/WINDOWS/system32/sndvol32.exe");
Thread.Sleep(2000);
//Recoginze"Volume Control" window
AutomationElement volumewindow = AutomationElement.RootElement.FindFirst(TreeScope.Children, new PropertyCondition(AutomationElement.NameProperty, "Volume Control"));
//Recongize Volume slider
AutomationElement volumeslider=volumewindow.FindFirst(TreeScope.Descendants,new PropertyCondition(AutomationElement.AutomationIdProperty,"1001"));
Thread.Sleep(2000);
RangeValuePattern sliderpattern=Utility.UIA.ControlPattern.RangeValuepattern.GetRangeValuePattern(volumeslider);
sliderpattern.SetValue(100);
}
public static RangeValuePattern GetRangeValuePattern(
AutomationElement targetControl)
{
RangeValuePattern rangeValuePattern = null;
try
{
rangeValuePattern =
targetControl.GetCurrentPattern(
RangeValuePattern.Pattern)
as RangeValuePattern;
}
// Object doesn't support the
// RangeValuePattern control pattern
catch (InvalidOperationException)
{
return null;
}
return rangeValuePattern;
}