RangeValuePattern.RangeValuePatternInformation.IsReadOnly 속성

정의

UI 자동화 요소의 값이 읽기 전용인지 여부를 지정하는 값을 가져옵니다.

public:
 property bool IsReadOnly { bool get(); };
public bool IsReadOnly { get; }
member this.IsReadOnly : bool
Public ReadOnly Property IsReadOnly As Boolean

속성 값

값이 읽기 전용이면 true이고, 값을 수정할 수 있으면 false입니다. 기본값은 true입니다.

예제

다음 예제에서는 AutomationElement 지는 RangeValuePattern 컨트롤별 따라 해당 값을 증가 또는 감소를 포함 하는 컨트롤 패턴 LargeChange 값입니다.

SetRangeValue(targetControl[0], rangeValuePattern.Current.LargeChange, -1);
SetRangeValue(targetControl(0), rangeValuePattern.Current.LargeChange, - 1)
///--------------------------------------------------------------------
/// <summary>
/// Sets the range value of the control of interest.
/// </summary>
/// <param name="targetControl">
/// The automation element of interest.
/// </param>
/// <param name="rangeValue">
/// The value (either relative or absolute) to set the control to.
/// </param>
/// <param name="rangeDirection">
/// The value used to specify the direction of adjustment.
/// </param>
///--------------------------------------------------------------------
private void SetRangeValue(
    AutomationElement targetControl,
    double rangeValue,
    double rangeDirection)
{
    if (targetControl == null || rangeValue == 0 || rangeDirection == 0)
    {
        throw new ArgumentException("Argument cannot be null or zero.");
    }

    RangeValuePattern rangeValuePattern =
        GetRangeValuePattern(targetControl);

    if (rangeValuePattern.Current.IsReadOnly)
    {
        throw new InvalidOperationException("Control is read-only.");
    }

    rangeValue = rangeValue * Math.Sign(rangeDirection);

    try
    {
        if ((rangeValue <= rangeValuePattern.Current.Maximum) ||
            (rangeValue >= rangeValuePattern.Current.Minimum))
        {
            rangeValuePattern.SetValue(rangeValue);
        }
    }
    catch (ArgumentOutOfRangeException)
    {
        // TO DO: Error handling.
    }
    catch (ArgumentException)
    {
        // TO DO: Error handling.
    }
}
'''--------------------------------------------------------------------
''' <summary>
''' Sets the range value of the control of interest.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
''' <param name="rangeValue">
''' The value (either relative or absolute) to set the control to.
''' </param>
''' <param name="rangeDirection">
''' The value used to specify the direction of adjustment.
''' </param>
'''--------------------------------------------------------------------
Private Overloads Sub SetRangeValue( _
ByVal targetControl As AutomationElement, _
ByVal rangeValue As Double, ByVal rangeDirection As Double)
    If targetControl Is Nothing OrElse _
    rangeValue = 0 OrElse rangeDirection = 0 Then
        Throw New ArgumentException("Argument cannot be null or zero.")
    End If

    Dim rangeValuePattern As RangeValuePattern = _
    GetRangeValuePattern(targetControl)

    If rangeValuePattern.Current.IsReadOnly Then
        Throw New InvalidOperationException("Control is read-only.")
    End If

    rangeValue = rangeValue * Math.Sign(rangeDirection)

    Try
        If rangeValue <= rangeValuePattern.Current.Maximum OrElse _
        rangeValue >= rangeValuePattern.Current.Minimum Then
            rangeValuePattern.SetValue(rangeValue)
        End If
    Catch exc As ArgumentOutOfRangeException
        ' TO DO: Error handling.
    Catch exc As ArgumentException
        ' TO DO: Error handling.
    End Try

End Sub
///--------------------------------------------------------------------
/// <summary>
/// Obtains a RangeValuePattern control pattern from an 
/// automation element.
/// </summary>
/// <param name="targetControl">
/// The automation element of interest.
/// </param>
/// <returns>
/// A RangeValuePattern object.
/// </returns>
///--------------------------------------------------------------------
private 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;
}
'''--------------------------------------------------------------------
''' <summary>
''' Obtains a RangeValuePattern control pattern from an 
''' automation element.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
''' <returns>
''' A RangeValuePattern object.
''' </returns>
'''--------------------------------------------------------------------
Private Function GetRangeValuePattern( _
ByVal targetControl As AutomationElement) As RangeValuePattern
    Dim rangeValuePattern As RangeValuePattern = Nothing

    Try
        rangeValuePattern = DirectCast( _
        targetControl.GetCurrentPattern(rangeValuePattern.Pattern), _
        RangeValuePattern)
    Catch exc As InvalidOperationException
        ' Object doesn't support the 
        ' RangeValuePattern control pattern
        Return Nothing
    End Try

    Return rangeValuePattern

End Function 'GetRangeValuePattern

설명

컨트롤 있어야 해당 IsEnabledProperty 로 설정 true 및 해당 IsReadOnlyProperty 로 설정 false 만들어지기를 RangeValuePattern 개체입니다.

적용 대상