gpt4 book ai didi

.net - WPF 的 BitmapCache 未完全清除

转载 作者:行者123 更新时间:2023-12-04 16:11:58 29 4
gpt4 key购买 nike

我们有一个带有用户控件的 WPF 页面,我们在其中使用 BitmapCache - 当我们尝试通过使用空路径 (New Path()) 更新属性 (Data Binding) 来清除此元素时,它并未完全刷新/清除。如果我稍微改变窗口大小,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

最佳答案

您是否可以在对象上创建一个新事件以在需要时触发,并且在调用时将 object = 设置为由 use 语句临时创建的新对象,如果您可以使其从 system.idisposable 继承,或者您只是将其设置为完成后为空?我不知道它的代码在我的头顶上,但类似于:

MyEvent += new event(object b);

event(object b)
{
using (custom_ScrollViewer = new custom_ScrollViewer)
{
OnScreen_ScrollViewer = Custom_ScrollViewer;

};
// or
custom_ScrollViewer = new custom_ScrollViewer;
OnScreen_ScrollViewer = Custom_ScrollViewer;
custom_ScrollViewer = null;

}

关于.net - WPF 的 BitmapCache 未完全清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11902552/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com