【问题标题】:Why would a textbox border be light and then disappear when text fills it?为什么文本框边框会变亮,然后在填充文本时消失?
【发布时间】:2009-10-06 09:57:54
【问题描述】:

当在两台特定机器上查看我们的应用程序时,一台是 Vista 一台是 XP,我们会对某些文本框产生影响,当聚焦时,左右边框是“soft”,当您输入超过右边框时,它会完全消失,如下所示:

在我们测试过的所有其他机器上,它看起来还不错。

尽管如此,下面是我们在 TextBox 上的样式,虽然当我制作一个示例 WPF 应用程序并将此样式应用于 TextBox 时,我在两台有问题的机器上没有遇到同样的问题,所以它似乎我们的应用程序中的其他一些设置/样式的组合会导致这种情况。

<Style TargetType="TextBox">
    <Setter Property="Margin" Value="0 0 0 0"/>
    <Setter Property="MaxHeight" Value="50"/>
    <Setter Property="VerticalAlignment" Value="Stretch"/>
    <Setter Property="VerticalContentAlignment" Value="Center"/>
    <Setter Property="BorderBrush" Value="#7F9DB9" />
    <Setter Property="BorderThickness" Value="1" />
</Style>

有没有人在 WPF 中遇到过这个渲染/别名问题和/或解决了这个问题?

【问题讨论】:

    标签: wpf rendering


    【解决方案1】:

    只是在黑暗中拍摄:TextBox 中的Border 是否将SnapsToDevicePixels 设置为true?可以使用Snoop查看。

    【讨论】:

    • 谢谢,snoop 成功了(一个了不起的工具,我可以推荐 CTRL-SHIFT-click-on-element 功能),问题是网格上有一个中间宽度,所以文本框小于环绕网格列,因此文本在右侧的边距区域“下方”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 2014-10-01
    • 1970-01-01
    • 2016-04-16
    相关资源
    最近更新 更多