6

BitmapCache を使用するユーザー コントロールを含む WPF ページがあります。空のパス (New Path()) でプロパティ (データ バインディング) を更新してこの要素をクリアしようとすると、完全に更新/クリアされません。ウィンドウ サイズを少し変更すると、BitmapCache がアクティブな領域が完全にクリアされます。

BitmapCache を使用する要素をクリア/更新するために何か特別なことはありますか?

これは私たちのコードです:

    <me:ScrollViewer
    RenderedWaves="{Binding RenderedWaves}"
    ItemTemplate="{DynamicResource DataTemplateForWaveItem}" 
    ItemsPanel="{DynamicResource ItemsPanelTemplateForWaveItems}" 
    CacheMode="BitmapCache" />

私はそれを修正したと思っていましたが、毎回うまくいくとは限りません...

パスを設定する次のコードは、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

そして、このコードは時々それを更新します:

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
4

1 に答える 1