DependencyObject.CoerceValue(DependencyProperty) 方法

定义

对指定依赖属性的值进行强制。 通过对调用方 DependencyObject 上存在的依赖属性的属性元数据中所指定的任何 CoerceValueCallback 函数进行调用来完成此操作。

C#
public void CoerceValue (System.Windows.DependencyProperty dp);

参数

dp
DependencyProperty

要强制转换的依赖项属性的标识符。

例外

指定的 dp 或其值无效或不存在。

示例

以下示例在实现中PropertyChangedCallback调用CoerceValue,该实现用作PropertyChangedCallback同一类的不同依赖项属性。 这是一种常见模式,用于引入依赖项属性之间的 true 值依赖关系。

C#
private static void OnCurrentReadingChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
  d.CoerceValue(MinReadingProperty);
  d.CoerceValue(MaxReadingProperty);
}

注解

除了通过调用显式调用 CoerceValue外,每当 WPF 属性系统重新评估依赖属性值时, CoerceValueCallback 也会在内部调用依赖属性。

调用 CoerceValue 该方法时,最终会调用所指定属性的强制值回调。 通常,仅当知道存在强制值回调,并且知道回调的强制条件时,才会调用 CoerceValue 该回调。

调用 CoerceValue 的最常见方案是在类处理或属性更改相关属性回调中,这些回调以依赖方式影响彼此的值。 有关详细信息,请参阅依赖属性回调和验证

适用于

产品 版本
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

另请参阅