RangeValuePattern.RangeValuePatternInformation.IsReadOnly Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un valore che specifica se il valore di un elemento Automazione interfaccia utente è di sola lettura.
public:
property bool IsReadOnly { bool get(); };
public bool IsReadOnly { get; }
member this.IsReadOnly : bool
Public ReadOnly Property IsReadOnly As Boolean
Valore della proprietà
true
se il valore è di sola lettura. false
se può essere modificato. Il valore predefinito è true
.
Esempio
Nell'esempio seguente un oggetto AutomationElement che supporta il pattern di controllo ha il RangeValuePattern valore incrementato o decrementato dal valore specifico LargeChange del controllo.
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
Commenti
Un controllo deve essere IsEnabledProperty impostato su true
e il relativo IsReadOnlyProperty set su false
prima della creazione di un RangeValuePattern oggetto .