本文整理汇总了C#中INameScope.FindName方法的典型用法代码示例。如果您正苦于以下问题:C# INameScope.FindName方法的具体用法?C# INameScope.FindName怎么用?C# INameScope.FindName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类INameScope
的用法示例。
在下文中一共展示了INameScope.FindName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ResolveBeginStoryboardName
/// <summary>
/// Finds a BeginStoryboard with the given name, following the rules
/// governing Storyboard. Returns null if not found.
/// </summary>
/// <remarks>
/// If a name scope is given, look there and nowhere else. In the
/// absense of name scope, use Framework(Content)Element.FindName which
/// has its own complex set of rules for looking up name scopes.
///
/// This is a different set of rules than from that used to look up
/// the TargetName. BeginStoryboard name is registered with the template
/// INameScope on a per-template basis. So we look it up using
/// INameScope.FindName(). This is a function completely different from
/// Template.FindName().
/// </remarks>
internal static BeginStoryboard ResolveBeginStoryboardName(
string targetName,
INameScope nameScope,
FrameworkElement fe,
FrameworkContentElement fce)
{
object namedObject = null;
BeginStoryboard beginStoryboard = null;
if( nameScope != null )
{
namedObject = nameScope.FindName(targetName);
if( namedObject == null )
{
throw new InvalidOperationException(
SR.Get(SRID.Storyboard_NameNotFound, targetName, nameScope.GetType().ToString()));
}
}
else if( fe != null )
{
namedObject = fe.FindName(targetName);
if( namedObject == null )
{
throw new InvalidOperationException(
SR.Get(SRID.Storyboard_NameNotFound, targetName, fe.GetType().ToString()));
}
}
else if( fce != null )
{
namedObject = fce.FindName(targetName);
if( namedObject == null )
{
throw new InvalidOperationException(
SR.Get(SRID.Storyboard_NameNotFound, targetName, fce.GetType().ToString()));
}
}
else
{
throw new InvalidOperationException(
SR.Get(SRID.Storyboard_NoNameScope, targetName));
}
beginStoryboard = namedObject as BeginStoryboard;
if( beginStoryboard == null )
{
throw new InvalidOperationException(SR.Get(SRID.Storyboard_BeginStoryboardNameNotFound, targetName));
}
return beginStoryboard;
}
示例2: GetClockTarget
private TargetKey GetClockTarget(AnimationTimelineClock clock, FrameworkElement containingObject, INameScope nameScope)
{
DependencyObject root = GetTarget(clock.Timeline);
if (root == null)
{
string targetName = GetTargetName(clock.Timeline);
if (targetName.IsNullOrEmpty())
{
root = containingObject;
}
else
{
root = nameScope.FindName(targetName) as DependencyObject;
if (root == null)
{
throw new Granular.Exception("Can't find Storyboard.TargetName \"{0}\" for element \"{1}\"", targetName, containingObject);
}
}
}
PropertyPath propertyPath = GetTargetProperty(clock.Timeline);
DependencyObject target;
DependencyProperty targetProperty;
return TryGetPropertyPathTarget(root, propertyPath, out target, out targetProperty) && target is IAnimatable ? new TargetKey((IAnimatable)target, targetProperty) : null;
}