我的WPF应用程序中有一个自定义消息框。 问题是:此消息框未显示 当我在一个不是从Window派生的类中调用它时。 没有编译错误。参考文献正确添加。
我不能在这个类中调用任何UI组件。
调试时发生异常:“调用线程必须是STA,因为许多UI组件都需要这个”
答案 0 :(得分:4)
我遇到了同样的问题,问题是当我们创建自定义MessageBox时,它可能来自像Windows这样的UI组件,然后当我们尝试从我们通过代码创建的线程创建和显示我们的自定义MessageBox时在我们的应用程序中(意思是后台主题),我们得到错误:
“调用线程必须是STA,因为许多UI组件都需要这个”。
由于“mottukutty”评论了他自己的问题,解决方案是使用应用程序的 Dispatcher 来显示我们的自定义MessageBox,如:
/* Photo Edit */
$(document).on('click','.photo-edit-link',function()
{
var id = $(this).attr("id");
var photo_id = id;
$(".content-loader").fadeOut('slow', function()
{
$(".content-loader").fadeIn('slow');
$(".content-loader").load('photo_edit_form.php?photo_id='+photo_id);
});
return false;
});
/* Photo Edit */
/* Photo Delete */
$(document).on('click','.photo-delete-link',function()
{
var id = $(this).attr("id");
var del_id = id;
var parent = $(this).parent("td").parent("tr");
if(confirm('Delete photo with ID = ' +del_id))
{
$.post('photo_delete.php', {'del_id':del_id}, function(data)
{
parent.fadeOut('slow');
});
}
return false;
});