本文整理汇总了C#中System.Windows.DependencyObject.RemoveSelfAsInheritanceContext方法的典型用法代码示例。如果您正苦于以下问题:C# DependencyObject.RemoveSelfAsInheritanceContext方法的具体用法?C# DependencyObject.RemoveSelfAsInheritanceContext怎么用?C# DependencyObject.RemoveSelfAsInheritanceContext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.DependencyObject
的用法示例。
在下文中一共展示了DependencyObject.RemoveSelfAsInheritanceContext方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: RemoveContextFromObject
[FriendAccessAllowed] // Built into Base, also used by Framework.
internal static void RemoveContextFromObject(
DependencyObject context,
DependencyObject oldValue )
{
if (context != null && oldValue.InheritanceContext == context)
{
context.RemoveSelfAsInheritanceContext(oldValue, null);
}
}
示例2: ProcessInstanceValue
//
// This method
// 1. Adds or removes per-instance state on the container/child (push model)
// 2. Processes a single value that needs per-instance storage
//
internal static void ProcessInstanceValue(
DependencyObject target,
int childIndex,
HybridDictionary instanceValues,
DependencyProperty dp,
int i,
bool apply)
{
// If we get this far, it's because there's a value
// in the property value list of an active style that requires
// per-instance storage. The initialization (CreateInstaceData)
// should have created the InstanceValues hashtable by now.
Debug.Assert(instanceValues != null, "InstanceValues hashtable should have been created at initialization time.");
InstanceValueKey key = new InstanceValueKey(childIndex, dp.GlobalIndex, i);
if (apply)
{
// Store a sentinel value in per-instance StyleData.
// The actual value is created only on demand.
instanceValues[key] = NotYetApplied;
}
else
{
// Remove the instance value from the table
object value = instanceValues[key];
instanceValues.Remove(key);
Expression expr;
Freezable freezable;
if ((expr = value as Expression)!= null)
{
// if the instance value is an expression, detach it
expr.OnDetach(target, dp);
}
else if ((freezable = value as Freezable)!= null)
{
// if the instance value is a Freezable, remove its
// inheritance context
target.RemoveSelfAsInheritanceContext(freezable, dp);
}
}
}