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 для присоединенных свойств. Дополнительные сведения см. в разделе "Общие сведения о присоединенных свойствах".) Затем присоединенное свойство можно задать для любого класса, наследуемого от 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) |