Abbiamo una pagina WPF con un controllo utente in cui utilizziamo un BitmapCache - quando proviamo a cancellare questo elemento aggiornando la proprietà (associazione dati) con un percorso vuoto (nuovo percorso()), non è completamente aggiornato/cancellato. Se cambio leggermente la dimensione della finestra, l'area in cui BitmapCache è attivo viene completamente cancellata.BitmapCache di WPF non è completamente azzerato
C'è qualcosa di speciale da fare per cancellare/aggiornare un elemento che utilizza BitmapCache?
Questo è il nostro codice:
<me:ScrollViewer
RenderedWaves="{Binding RenderedWaves}"
ItemTemplate="{DynamicResource DataTemplateForWaveItem}"
ItemsPanel="{DynamicResource ItemsPanelTemplateForWaveItems}"
CacheMode="BitmapCache" />
ho pensato ho riparato, ma non funziona sempre ...
Questo codice per impostare il percorso doesn' t aggiornare immediatamente BitmapCache:
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
E questo codice aggiorna a volte:
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
Ci puoi dire un po 'di più? Perché così complicato? –
Se fossi un uomo delle scommesse, direi che hai problemi con la carta vidya. Potete fornire un esempio minimo di repros? – Will
Puoi chiamare InvalidateVisual() dal code-behind, per vedere se questo aiuta – ekholm