我设计了一个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();
}
Run Code Online (Sandbox Code Playgroud)
我用None的WindowStyle.并在UserControl中设计了一个自定义关闭按钮,用于关闭弹出/对话框窗口.我尝试了下面给出的代码.但它不起作用.
private void btnClose_Click(object sender, RoutedEventArgs e)
{
//this.Close(); //:not working
Window objWindow = new Window
{
Content = new ucInstrumentApp()
};
objWindow.Close();
}
Run Code Online (Sandbox Code Playgroud)
我是WPF/Windows表单的新手.你能指导我解决这个问题.
你需要Window从你当前的UserControl那个中获取父级然后Close它.
实现这样的事情的一个解决方案可能是以下一个:
private void btnClose_Click(object sender, RoutedEventArgs e)
{
Window parentWindow = Window.GetWindow((DependencyObject)sender);
if (parentWindow != null)
{
parentWindow.Close();
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,它基于Window.GetWindow方法,这里是它的描述:
返回对承载依赖项对象所在的内容树的Window对象的引用.
| 归档时间: |
|
| 查看次数: |
2793 次 |
| 最近记录: |