Ho riscontrato un problema riprodotto su .NET 4.0 quando UIElement.UseLayoutRounding="True"
e TextBoxBase.VerticalScrollBarVisibility="Auto"
sono impostati insieme. Il problema è riprodotto solo sul tema Windows classico (testato su Windows 7 e XP).WPF cade nel ciclo infinito quando UseLayoutRounding = "True"
Quando la finestra viene caricata, WPF mostra e quindi nasconde la barra di scorrimento verticale su TextBlock in loop infinito in modo che l'interfaccia utente diventi inutilizzabile.
Markup è del tutto semplice:
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>
Qualcuno ha qualche idea di modi per evitare questo?
È richiesta l'impostazione 'Auto' per VerticalScrollBarVisibility? Puoi impostarlo sempre visibile in modo che il ciclo non si verifichi? –
Il problema è che abbiamo circa 15K linee di XAML e ci vorrebbe molto tempo per analizzare e aggiornare ogni VerticalScrollBarVisibility. Inoltre non sono sicuro che questo problema non si presenterebbe in altre circostanze. –
Forse dovresti segnalarlo a Microsoft come un bug? Puoi farlo a [Microsoft Connect] (http://connect.microsoft.com/VisualStudio/). – Sheridan