我看了其他相关的问题,但我真的不能让他们涉及到这个,所以我认为这是最好问问,Im相当新的WPF等,所以请多多包涵。

我用这http://www.codeproject.com/KB/WPF/wpf_notifyicon.aspx API与定制WPF的Windows工作(特别是FancyBalloon)。

不过,我遇到下列问题来了,我似乎无法在一个单独的线程开始BalloonTips(我需要这个,因为我解析的邮件,因此,如果有3封电子邮件,例如,它会显示第一封电子邮件(即正常工作),但是当涉及到第二电子邮件将其与TargetInvocationException,崩溃{“指定的元素已经是另一个元件的逻辑子。断开它首先。”}。

事情是,即时通讯理应具有相同背景的工作,我已经尝试调用它之前关闭它,它配置等,但都无济于事。 (话又说回来,如果我处理它,我不能创建另一个实例是显然WPF UI组件必须从静态线程调用,从而在整个电子邮件+显示的气球,我试图使用相同的BalloonTip的循环。

任何建议请?我真的在这里损失,我一直在这相当长的一段时间了:/

我想知道是否有任何人是

有帮助吗?

解决方案

在一般情况下,WPF控件应访问,并且只在主UI线程更新。有螺纹亲和力检查所有在数据绑定内脏如果分配给从任何线程不属于WPF UI线程绑定属性数据,例如,将抛出异常。

您可以从您的后台工作线程删除UI代码,或明智地使用的SynchronizationContext的从代码的后台线程片段调用到UI线程上执行。

如果你是新来WPF或新的线程,你应该保持UI的东西了后台线程。 WPF有很多复杂的,让你忙而不增加线程问题进来的额外头痛。

其他提示

似乎你在同一时间将相同的用户界面元素,多个父容器中。

例如,如果我尝试myStackPanel.Children.Add(myUIElement)同时在单独的线程,指的是同一UI元素对象,这会导致您所看到的错误。

如果您需要多个线程相同的UI元素,考虑克隆他们或移动您的UI逻辑主线。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top