DependencyObject Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет объект, участвующий в системе свойств зависимостей.
public ref class DependencyObject : System::Windows::Threading::DispatcherObject
public class DependencyObject : System.Windows.Threading.DispatcherObject
[System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))]
public class DependencyObject : System.Windows.Threading.DispatcherObject
type DependencyObject = class
inherit DispatcherObject
[<System.Windows.Markup.NameScopeProperty("NameScope", typeof(System.Windows.NameScope))>]
type DependencyObject = class
inherit DispatcherObject
Public Class DependencyObject
Inherits DispatcherObject
- Наследование
- Производный
- Атрибуты
Примеры
Следующий пример является производным от DependencyObject создания нового абстрактного класса. Затем класс регистрирует присоединенное свойство и включает элементы поддержки для этого присоединенного свойства.
public abstract class AquariumObject3 : DependencyObject
{
public enum Bouyancy
{
Floats,
Sinks,
Drifts
}
public static readonly DependencyProperty BouyancyProperty = DependencyProperty.RegisterAttached(
"Bouyancy",
typeof(Bouyancy),
typeof(AquariumObject3),
new FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange),
new ValidateValueCallback(ValidateBouyancy)
);
public static void SetBouyancy(UIElement element, Bouyancy value)
{
element.SetValue(BouyancyProperty, value);
}
public static Bouyancy GetBouyancy(UIElement element)
{
return (Bouyancy)element.GetValue(BouyancyProperty);
}
private static bool ValidateBouyancy(object value)
{
Bouyancy bTest = (Bouyancy) value;
return (bTest == Bouyancy.Floats || bTest == Bouyancy.Drifts || bTest==Bouyancy.Sinks);
}
public static readonly DependencyProperty IsDirtyProperty = DependencyProperty.Register(
"IsDirty",
typeof(Boolean),
typeof(AquariumObject3)
);
}
Public MustInherit Class AquariumObject3
Inherits DependencyObject
Public Enum Bouyancy
Floats
Sinks
Drifts
End Enum
Public Shared ReadOnly BouyancyProperty As DependencyProperty = DependencyProperty.RegisterAttached("Bouyancy", GetType(Bouyancy), GetType(AquariumObject3), New FrameworkPropertyMetadata(Bouyancy.Floats, FrameworkPropertyMetadataOptions.AffectsArrange), New ValidateValueCallback(AddressOf ValidateBouyancy))
Public Shared Sub SetBouyancy(ByVal element As UIElement, ByVal value As Bouyancy)
element.SetValue(BouyancyProperty, value)
End Sub
Public Shared Function GetBouyancy(ByVal element As UIElement) As Bouyancy
Return CType(element.GetValue(BouyancyProperty), Bouyancy)
End Function
Private Shared Function ValidateBouyancy(ByVal value As Object) As Boolean
Dim bTest As Bouyancy = CType(value, Bouyancy)
Return (bTest = Bouyancy.Floats OrElse bTest = Bouyancy.Drifts OrElse bTest = Bouyancy.Sinks)
End Function
Public Shared ReadOnly IsDirtyProperty As DependencyProperty = DependencyProperty.Register("IsDirty", GetType(Boolean), GetType(AquariumObject3))
End Class
Комментарии
Класс DependencyObject включает системные службы свойств Windows Presentation Foundation (WPF) во многих производных классах.
Основная функция системы свойств — вычислить значения свойств и предоставить системное уведомление о измененных значениях. Другим ключевым классом, участвующим в системе свойств, является DependencyProperty. DependencyProperty включает регистрацию свойств зависимостей в системе свойств и предоставляет идентификацию и сведения о каждом свойстве зависимостей, в то время как DependencyObject в качестве базового класса объекты могут использовать свойства зависимостей.
DependencyObject к службам и характеристикам относятся следующие:
Поддержка размещения свойств зависимостей. Вы регистрируете свойство зависимостей путем вызова Register метода и хранения возвращаемого значения метода в качестве общедоступного статического поля в классе.
Поддержка размещения присоединенного свойства. Вы регистрируете присоединенное свойство, вызывая RegisterAttached метод и сохраняя возвращаемое значение метода в качестве общедоступного статического поля только для чтения в классе. (Существуют также дополнительные требования к членам; обратите внимание, что это представляет собой WPF конкретную реализацию для присоединенных свойств. Дополнительные сведения см. в разделе Attached Properties Overview.) Затем присоединенное свойство можно задать на любом классе, наследуемом от DependencyObject.
Получение, установка и очистка методов служебной программы для значений всех свойств зависимостей, существующих в объекте DependencyObject.
Метаданные, поддержка принудительного значения, уведомление об изменении свойства и переопределение обратных вызовов для свойств зависимостей или присоединенных свойств. Кроме того, DependencyObject класс упрощает метаданные свойства каждого владельца для свойства зависимостей.
Общий базовый класс для классов, производных от ContentElement, Freezableили Visual. (UIElementдругой базовый класс элементов имеет иерархию классов, включающую Visual.)
Конструкторы
| Имя | Описание |
|---|---|
| DependencyObject() |
Инициализирует новый экземпляр класса DependencyObject. |
Свойства
| Имя | Описание |
|---|---|
| DependencyObjectType |
Возвращает объект DependencyObjectType , который упаковывает тип СРЕДЫ CLR этого экземпляра. |
| Dispatcher |
Dispatcher Возвращает это DispatcherObject значение, с которым связано. (Унаследовано от DispatcherObject) |
| IsSealed |
Возвращает значение, указывающее, запечатан ли этот экземпляр (только для чтения). |
Методы
| Имя | Описание |
|---|---|
| CheckAccess() |
Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |
| ClearValue(DependencyProperty) |
Очищает локальное значение свойства. Свойство для очистки указывается идентификатором DependencyProperty . |
| ClearValue(DependencyPropertyKey) |
Очищает локальное значение свойства только для чтения. Свойство, которое необходимо очистить, задается параметром DependencyPropertyKey. |
| CoerceValue(DependencyProperty) |
Принуждает значение указанного свойства зависимостей. Это достигается путем вызова любой CoerceValueCallback функции, указанной в метаданных свойств для свойства зависимостей, так как он существует при вызове DependencyObject. |
| Equals(Object) |
Определяет, эквивалентен ли предоставленный DependencyObject объект текущему DependencyObject. |
| GetHashCode() |
Получает хэш-код для этого DependencyObject. |
| GetLocalValueEnumerator() |
Создает специализированный перечислитель для определения того, какие свойства зависимостей имеют локальные значения для этого DependencyObject. |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| GetValue(DependencyProperty) |
Возвращает текущее эффективное значение свойства зависимостей для этого экземпляра DependencyObject. |
| InvalidateProperty(DependencyProperty) |
Повторно вычисляет эффективное значение для указанного свойства зависимостей. |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| OnPropertyChanged(DependencyPropertyChangedEventArgs) |
Вызывается при каждом обновлении эффективного значения любого свойства DependencyObject зависимостей. Определенное свойство зависимостей, которое изменилось, сообщается в данных события. |
| ReadLocalValue(DependencyProperty) |
Возвращает локальное значение свойства зависимостей, если оно существует. |
| SetCurrentValue(DependencyProperty, Object) |
Задает значение свойства зависимостей, не изменяя его источник значений. |
| SetValue(DependencyProperty, Object) |
Задает локальное значение свойства зависимостей, указанное его идентификатором свойства зависимостей. |
| SetValue(DependencyPropertyKey, Object) |
Задает локальное значение свойства зависимостей только для чтения, указанное DependencyPropertyKey идентификатором свойства зависимости. |
| ShouldSerializeProperty(DependencyProperty) |
Возвращает значение, указывающее, должны ли процессы сериализации сериализовать значение для указанного свойства зависимостей. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
| VerifyAccess() |
Принудительно применяет, что вызывающий поток имеет доступ к этому DispatcherObject. (Унаследовано от DispatcherObject) |