我正在编写一个C#应用程序,它使用页面控件来显示一些信息。这就是我想做的事情......
对于第1步,我基本上使用
this.NavigationService.Navigate(new ThePage())
加载页面。页面的构造函数以及我的事件处理函数是
public partial class ThePage : Page
{
public ThePage()
{
InitializeComponent();
Loaded += new RoutedEventHandler(Page_Load);
}
protected void Page_Load(object sender, EventArgs e)
{
MessageBox.Show("hey");
}
}
所以会发生的事情是在显示实际页面之前显示MessageBox。我想反过来说,我希望页面显示,然后显示消息框。
我知道我可以使用一个计时器,但感觉这将是一个糟糕的解决方案,因为我必须猜测它的间隔,要么冒险使它太短,要么通过设置其间隔太长来人为增加加载时间
答案 0 :(得分:1)
内容呈现事件如何?
public partial class ThePage : Page
{
public ThePage()
{
InitializeComponent();
ContentRendered+= new RoutedEventHandler(Page_Load);
}
protected void Page_Load(object sender, EventArgs e)
{
MessageBox.Show("hey");
}
}
答案 1 :(得分:0)
我遇到了类似的问题,我在加载文档时显示了一个Messagebox。但是,在页面上显示所有页面内容之前,Messagebox显示,使我的页面空白,但显示消息框。
我通过延迟执行messagebox来解决这个问题,如下所示:
<Extension()> _
Public Sub MyMessageAlert(ByVal pPage As Page, ByVal pMessageText As String)
Dim s As String = "setTimeout(function(){window.alert('" & pMessageText & "')}, 10);"
ScriptManager.RegisterClientScriptBlock(pPage, pPage.GetType, "ClientScript", s, True)
End Sub
这允许页面加载(在一个单独的线程上?),并且还显示消息框。