private Digit findAdjacentMathDigits(LogicalDirection direction) { Digit expr = null; if (Selection.Text.Length == 0) { DependencyObject dpObj = CaretPosition.GetAdjacentElement( direction); // is it contained in BlockUIContainer? expr = CaretPosition.GetAdjacentElement( direction) as Digit; // is it onctained in a InlineUIContainer? if (expr == null) { InlineUIContainer uiWrapper = CaretPosition.GetAdjacentElement( direction) as InlineUIContainer; if (uiWrapper != null) { expr = uiWrapper.Child as Digit; } } } return(expr); }