我有點遲到了,但我有相同的問題。發生
訪問衝突,因爲每個實例寄存器的事件處理程序,以所述組合物的目標
public ScreenSpaceLines3D()
{
...
CompositionTarget.Rendering += OnRender; // <-- this line
}
的渲染事件,但忘記當實例從現場移除以將其刪除。
因此,要解決這個問題,你需要觸摸的源代碼:
public ScreenSpaceLines3D()
{
...
// event registration removed
}
private bool AttachedToCompositionTargetRendering { get; set; }
protected override void OnVisualParentChanged(DependencyObject oldParent)
{
base.OnVisualParentChanged(oldParent);
var parent = VisualTreeHelper.GetParent(this);
if (parent == null)
{
if (AttachedToCompositionTargetRendering)
{
CompositionTarget.Rendering -= OnRender;
AttachedToCompositionTargetRendering = false;
}
}
else
{
if (!AttachedToCompositionTargetRendering)
{
CompositionTarget.Rendering += OnRender;
AttachedToCompositionTargetRendering = true;
}
}
}
我覺得可笑的是.NET沒有拿出一個像樣的繪圖工具,以及...但沒有太多可以做。你有沒有考慮收購C#? :)。另外,你在'ScrennSpaceLines3D'中有一個錯字,應該是'屏幕'我相信... [看起來像你使用的圖書館自2007年以來沒有更新...只是說...] – Noctis
那麼,2個原因爲什麼我我不接受C#:1.我的計算機課程使用VB。 2.我寧願使用C++而不使用C#,但我不能使用,因此無關緊要。 –