Chúng tôi có một trang WPF với điều khiển người dùng, nơi chúng tôi sử dụng BitmapCache - khi chúng tôi cố gắng xóa phần tử này bằng cách cập nhật thuộc tính (Data Binding) với một đường dẫn trống (New Path()), nó không hoàn toàn được làm mới/xóa. Nếu tôi thay đổi kích thước cửa sổ một chút, nơi BitmapCache đang hoạt động được xóa hoàn toàn.BitmapCache của WPF không được xóa hoàn toàn
Có điều gì đặc biệt để làm để xóa/làm mới phần tử sử dụng BitmapCache không?
Đây là mã của chúng tôi:
<me:ScrollViewer
RenderedWaves="{Binding RenderedWaves}"
ItemTemplate="{DynamicResource DataTemplateForWaveItem}"
ItemsPanel="{DynamicResource ItemsPanelTemplateForWaveItems}"
CacheMode="BitmapCache" />
tôi nghĩ rằng tôi cố định nó, nhưng nó không làm việc mỗi khi ...
Mã này để thiết lập đường dẫn doesn' t cập nhật BitmapCache ngay lập tức:
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
.210
Và đoạn mã này sẽ cập nhật nó đôi khi:
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
Bạn có thể cho chúng tôi biết thêm một chút? Tại sao quá phức tạp? –
Nếu tôi là một cá cược tôi muốn nói rằng bạn có vấn đề về thẻ vidya. Bạn có thể cung cấp một ví dụ tối thiểu mà repros? – Will
Bạn có thể gọi InvalidateVisual() từ mã sau, để xem điều đó có giúp ích cho – ekholm