在我的Silverlight应用程序中,我点击一下按钮,每次点击它都会调用此代码
private void Help_Click(object sender, RoutedEventArgs e)
{
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_blank");
}
但我的问题是每次点击它都会在浏览器中打开一个新标签或窗口。
如何通过刷新第一个打开的页面或带有该URL的选项卡来防止这种情况发生。 我想每次都防止打开多个标签。
(最终我想通过动态网址进行导航 例如:第一次www.stackoverflow.com/questions 第二次我想用www.stackoverflow.com/answers刷新同一个打开的页面。
答案 0 :(得分:1)
Insead of _blank Use _self
例如:
不要使用此
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_blank");
你只需使用这个
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_self");
可能的值:
根据您的评论,您可以选择另一种方式。如果您希望可以使用它。
private void Help_Click(object sender, RoutedEventArgs e)
{
// Checking the Condition
if (Session["hasvalue"].ToString() == "Clicked") // Second click onwards current TAB itself
{
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_self");
}
else // First Time it will be opened in New TAB
{
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_blank");
}
// Assign this value to session
Session["hasvalue"] = "Clicked";
}
希望你能有所了解。
答案 1 :(得分:1)
答案 2 :(得分:0)
如果您不希望它打开新标签页,请从"_blank"
构造函数中删除Uri
。所以改变
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_blank");
到
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"));
有关详细信息,请参阅W3Schools目标说明。
"_self"
是默认设置,但您可以使用
HtmlPage.Window.Navigate(new Uri("http://stackoverflow.com/"), "_self");
使事情更明确。