0

我遇到了这个非常奇怪的问题,我正在突出显示包含多个 Run 对象的 TextBlock 对象上的某些文本部分。

    <TextBlock Name="InlineTextBlock" Background="White">

            <Run Foreground="White"
                 Background="Blue"
                 FontSize="75"
                 FontFamily="Helvetica">17-Oct-13</Run>

            <Run Foreground="White"
                 Background="Blue"
                 FontSize="75"
                 FontFamily="Helvetica">17/Oct/13</Run>
    </TextBlock>

这是非常简单易读的代码,通过阅读,您会期望 17-Oct-13 和 17/Oct/13 都以蓝色背景和白色前景完全突出显示。

奇怪的是,连字符在没有应用背景颜色的左侧和右侧有 1 个像素。

2013 年 10 月 17 日第二个 Run 对象的高亮显示没有问题。

希望能帮助您解决这个奇怪的问题。

编辑:在我的计算机上运行它会显示以下内容(您必须仔细查看才能看到它): 连字符周围的白线

此外,我注意到这只发生在某些字体上,如 Helvetica、Arial、Consolas(仅举几例)。Verdana 似乎显示正常。

4

1 回答 1

1

不幸的是,在我的计算机上运行您的代码不会遇到这个问题:

在此处输入图像描述

我猜你还有其他原因导致你的问题。

供您参考,我在 Windows 7 和 .NET 4.0 上运行 Visual Studio 2010。


更新>>>

感谢您的更新...我现在可以确认我在使用该Helvetica字体的连字符周围看到了您神秘的垂直白线。我无法想象是什么导致了它,但假设你不能将 main 设置TextBlock.BackgroundBlue,你仍然可以通过使用设置为的内部来解决TextBlock这个Background问题Blue

<TextBlock Name="InlineTextBlock" Background="White">
    <TextBlock Background="Blue">
        <Run Foreground="White"
                Background="Blue"
                FontSize="50"
                FontFamily="Helvetica">17-Oct-13</Run>

        <Run Foreground="White"
                Background="Blue"
                FontSize="50"
                FontFamily="Helvetica">17/Oct/13</Run>
    </TextBlock>
</TextBlock>
于 2013-10-17T09:09:38.830 回答