2013-08-02 50 views
7

Tôi đã gặp sự cố được sao chép trên .NET 4.0 khi UIElement.UseLayoutRounding="True"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?

+0

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? –

+0

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. –

+2

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

Trả lời

4

Có điều gì đó rất sôi nổi trong TextBoxView, Nguồn tham chiếu cho .NET 4.5 lỗi số 1766924 với bản vá vô hiệu tính toán bố cục nền cho VerticalScrollBarVisibility = Auto. Trích dẫn:

 // 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. 
     // 

Điều này dường như được kết nối với số này feedback article mô tả quan sát chính xác của bạn.

Sự cố đã biết trong .NET 4.0, được khắc phục trong 4.5. Yêu cầu người dùng gặp vấn đề này để cài đặt .NET 4.5 trên máy của họ. Lưu ý giải pháp thay thế do rfboilers đề xuất nếu bạn cần giữ cho người dùng XP vui vẻ.

+0

Rất tiếc, ứng dụng của tôi vẫn có ~ 20% người dùng XP. Vì vậy, tôi cũng phải làm hài lòng họ. Tôi sẽ thử cách giải quyết và xem liệu nó có hiệu quả với những người dùng gặp sự cố không. Cảm ơn bạn đã chia sẻ thông tin này. – mephisto123

+0

Cách giải quyết không hữu ích: ( Dường như tôi sẽ phải luôn luôn dính vào thanh cuộn có thể nhìn thấy cho đến khi tất cả người dùng sẽ sử dụng Vista + và tôi sẽ có thể yêu cầu .NET 4.5 – mephisto123

-1

Có thể do Stackpanel. Trình xem cuộn sẽ mất hiển thị khi nó ở trong ngăn xếp.

-1

bạn đã thực hiện "dự án sạch" hay "giải pháp sạch" trong studio trực quan? đôi khi một cái gì đó trong các bản dựng bị rối tung lên