首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >textblock.Inlines.Contain()在命中测试方面有困难吗?

textblock.Inlines.Contain()在命中测试方面有困难吗?
EN

Stack Overflow用户
提问于 2015-02-20 02:11:40
回答 1查看 71关注 0票数 0

在我的画布的PreviewMouseDown事件处理程序中,我确实按以下方式对底层textBlock进行了测试。命中测试正确返回内联集合的Run元素。那么为什么相同的run元素(内联类型)没有被textBlock视为“包含”呢?

代码语言:javascript
复制
 void CustomInkCanvas_PreviewMouseDown(object sender, MouseButtonEventArgs e)
    {

        CustomInkCanvas cink = sender as CustomInkCanvas;

        TextBlock tb = GetVisualChild<TextBlock>(cink);

        Point p = e.GetPosition(tb);

    /** THIS IS CORRECT AND RETURNS THE CORRECT VALID RUN (of type Inline).
        Run run = tb.InputHitTest(p) as Run;

    ??? BUT DEBUG HERE STATES THAT THE RUN IS NOT CONTAINED BY THE TEXTBLOCK ??
        Debug.Assert(tb.Inlines.Contains(run) != true, "Where is the run?");
  }

谢谢您对此提供的任何指导。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-20 08:18:09

Run可能是Inline之一的(直接或间接)子元素,因此它本身不是顶级内联集合的元素。

在下面的XAML中,Inline集合包含两个元素,一个是Run,另一个是Bold。另一个运行是Bold元素的子元素。

代码语言:javascript
复制
<TextBlock>
    <TextBlock.Inlines>
        <Run Text="Hello,"/>
        <Bold>
            <Run Text="World."/>
        </Bold>
    </TextBlock.Inlines>
</TextBlock>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28620585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档