[英]How do we Close a custom UserControl as Dialog?
我設計了一個UserControl,並計划在單擊MainWindow中的按鈕時將其顯示為彈出窗口。
我按照這個鏈接 。 用於打開usercontrol作為對話框窗口。
private void btnInstApp_Click(object sender, RoutedEventArgs e)
{
Window objWindow = new Window
{
Title = "Title 12345",
WindowStyle = WindowStyle.None,
WindowStartupLocation = WindowStartupLocation.CenterScreen,
AllowsTransparency=true,
Width = 500,
Height = 200,
Content = new ucInstrumentApp()
};
objWindow.ShowDialog();
}
我使用None
作為WindowStyle
。 並在UserControl中設計了一個自定義關閉按鈕,用於關閉彈出/對話框窗口。 我嘗試了下面給出的代碼。 但它不起作用。
private void btnClose_Click(object sender, RoutedEventArgs e)
{
//this.Close(); //:not working
Window objWindow = new Window
{
Content = new ucInstrumentApp()
};
objWindow.Close();
}
我是WPF / Windows表單的新手。 你能指導我解決這個問題。
您需要從當前UserControl
獲取父Window
,然后Close
它。
實現這樣的事情的一個解決方案可能是以下一個:
private void btnClose_Click(object sender, RoutedEventArgs e)
{
Window parentWindow = Window.GetWindow((DependencyObject)sender);
if (parentWindow != null)
{
parentWindow.Close();
}
}
如您所見,它基於Window.GetWindow方法,這里是它的描述:
返回對承載依賴項對象所在的內容樹的Window對象的引用。
嘗試
private void btnClose_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
這應該工作:-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.