Tôi đã gặp sự cố được sao chép trên .NET 4.0 khi UIElement.UseLayoutRounding="True"
và TextBoxBase.VerticalScrollBarVisibility="Auto"
được đặt cùng nhau. Sự cố này chỉ được sao chép trên chủ đề Windows Classic (được kiểm tra trên Windows 7 và XP).WPF rơi vào vòng lặp vô hạn khi UseLayoutRounding = "True"
Khi cửa sổ được tải, WPF hiển thị và sau đó ẩn thanh cuộn dọc trên TextBlock trong vòng lặp vô hạn để giao diện người dùng không sử dụng được.
Markup là hoàn toàn đơn giản:
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>
Có ai có bất kỳ ý tưởng cách để tránh điều này?
Cài đặt 'Tự động' cho VerticalScrollBarVisibility có cần thiết không? Bạn có thể đặt nó luôn luôn hiển thị để vòng lặp không xảy ra? –
Vấn đề là chúng ta có khoảng 15K dòng XAML và phải mất rất nhiều thời gian để phân tích và cập nhật từng VerticalScrollBarVisibility. Ngoài ra tôi không chắc chắn rằng vấn đề này sẽ không xuất hiện trong các trường hợp khác. –
Có thể bạn nên báo cáo lỗi này với Microsoft? Bạn có thể làm điều đó tại [Microsoft Connect] (http://connect.microsoft.com/VisualStudio/). – Sheridan