コード例 #1
0
        private static uint Walk(Inline i, WalkerCallback callback)
        {
            uint hits = 0;

            if (callback(i))
            {
                hits++;
            }

            if (i is Span span)
            {
                foreach (Inline i2 in span.Inlines)
                {
                    hits += Walk(i2, callback);
                }
            }
            else if (i is Run)
            {
                // rien à faire.
            }
            else
            {
                throw new NotSupportedException();
            }

            return(hits);
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="callback"></param>
        /// <returns>Le nombre de 'hits' positifs.</returns>
        public static uint Walk(FlowDocument doc, WalkerCallback callback)
        {
            uint hits = 0;

            foreach (Block b in doc.Blocks)
            {
                hits += Walk(b, callback);
            }
            return(hits);
        }
コード例 #3
0
        private static uint Walk(Block te, WalkerCallback callback)
        {
            uint hits = 0;

            if (te is Paragraph p)
            {
                foreach (Inline i in p.Inlines)
                {
                    hits += Walk(i, callback);
                }
            }
            else
            {
                throw new NotSupportedException();
            }

            return(hits);
        }