設置一個簡單的布爾值來檢查窗口是否已經打開?
private bool isWindowAlreadyOpen = false;
private void Dictionary_Click(object sender, RoutedEventArgs e)
{
if (!isWindowAlreadyOpen)
{
Dictionary dic = new Dictionary();
dic.Show();
dic.Topmost = true;
isWindowAlreadyOpen = true;
}
}
應該這樣做。
編輯
你必須註冊窗口的關閉事件來取消布爾:
private bool isWindowAlreadyOpen = false;
private void Dictionary_Click(object sender, RoutedEventArgs e)
{
if (!isWindowAlreadyOpen)
{
Dictionary dic = new Dictionary();
dic.Show();
dic.Topmost = true;
dic.Closed += Dictionary_Closed;
isWindowAlreadyOpen = true;
}
}
private void Dictionary_Closed(object sender, EventArgs e)
{
isWindowAlreadyOpen = false;
}
EDIT2
或者,你可以使用dic.ShowDialog()
如果你想這個窗口是最頂層的,只有一個實例。
我試過了。有用。但是當我關上窗戶並想再次打開時,我無法打開。你有什麼想法嗎? 謝謝大家。 – neki 2010-03-12 07:24:28
非常感謝。有效。我是一個新的WPF和.NET。再次感謝你。幹得好。 – neki 2010-03-12 09:44:18