Wir haben eine WPF-Seite mit einem Benutzersteuerelement, wo wir ein BitmapCache verwenden - wenn wir versuchen, dieses Element durch Aktualisieren der Eigenschaft (Datenbindung) mit einem leeren Pfad (New Path()) zu löschen Es ist nicht vollständig aktualisiert/gelöscht. Wenn ich die Fenstergröße etwas ändere, wird der Bereich, in dem der BitmapCache aktiv ist, vollständig gelöscht.WPFs BitmapCache ist nicht vollständig gelöscht
Gibt es etwas Besonderes, um ein Element, das BitmapCache verwendet, zu löschen/zu aktualisieren?
Dies ist unser Code:
<me:ScrollViewer
RenderedWaves="{Binding RenderedWaves}"
ItemTemplate="{DynamicResource DataTemplateForWaveItem}"
ItemsPanel="{DynamicResource ItemsPanelTemplateForWaveItems}"
CacheMode="BitmapCache" />
Ich dachte, ich es fest, aber es funktioniert nicht jedes Mal ...
Dieser Code den Pfad zu setzen doesn‘ t Aktualisieren Sie den BitmapCache sofort:
Protected WriteOnly Property SetGraph As Path
Set(value As Path)
If value Is Nothing Then value = GetEmptyPath()
_graph = value
OnPropertyChanged(New PropertyChangedEventArgs(PropertyNameGraph))
End Set
End Property
manchmal
Und dieser Code aktualisiert ihn:
Protected WriteOnly Property SetGraph As Path
Set(value As Path)
UIDispatcherLocator.UIDispatcher.Invoke(Sub()
If value Is Nothing Then value = GetEmptyPath()
_graph = value
End Sub, Threading.DispatcherPriority.Background)
OnPropertyChanged(New PropertyChangedEventArgs(PropertyNameGraph))
End Set
End Property
Sie können uns ein bisschen mehr erzählen? Warum so kompliziert? –
Wenn ich ein Wettmann wäre, würde ich sagen, dass Sie Probleme mit der Vidya-Karte haben. Kannst du ein minimales Beispiel für das Repros geben? – Will
Sie könnten InvalidateVisual() von code-behind aufrufen, um zu sehen, ob das hilft – ekholm