7

UIElement.UseLayoutRounding="True"当和TextBoxBase.VerticalScrollBarVisibility="Auto"设置在一起时,我遇到了在 .NET 4.0 上重现的问题。该问题仅在 Windows Classic 主题上重现(在 Windows 7 和 XP 上测试)。

加载窗口时,WPF 在无限循环中显示并隐藏 TextBlock 上的垂直滚动条,从而使 UI 变得不可用。

标记非常简单:

App.xaml

<Application x:Class="PhysioControl.CodeStat.UI.Reviewer.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindowView.xaml"/>

MainWindowView.xaml

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        UseLayoutRounding="True">
    <StackPanel>
        <TextBox VerticalScrollBarVisibility="Auto"/>
    </StackPanel>
</Window>

有没有人知道如何避免这种情况?

4

3 回答 3

5

TextBoxView 中发生了一些非常有趣的事情,.NET 4.5 的参考源文档错误号 1766924 带有一个禁用 VerticalScrollBarVisibility=Auto 的背景布局计算的补丁。报价:

        // Workaround for bug 1766924.
        // When VerticalScrollBarVisiblity == Auto, there's a problem with
        // our interaction with ScrollViewer.  Disable background layout to
        // mitigate the problem until we can take a real fix in v.next.
        //

这似乎与描述您的确切观察的反馈文章有关。

.NET 4.0 中的已知问题,在 4.5 中修复。请遇到此问题的用户在他们的机器上安装 .NET 4.5。如果您需要让 XP 用户满意,请注意 rfboilers 提出的解决方法。

于 2014-02-14T13:54:11.840 回答
-1

It might be due to the Stackpanel. Scroll viewer will lost it visualization when it is inside a stackpanel.

于 2013-10-01T04:37:37.603 回答
-1

你在 Visual Studio 中做过“干净的项目”或“干净的解决方案”吗?有时构建中的某些东西会搞砸

于 2014-02-14T11:26:26.890 回答