<Button x:Name="confirmbtn" Content="Register"
HorizontalAlignment="Center" Height="60"
Margin="0,286,0,0" VerticalAlignment="Top" Width="216"
Click="confirmbtn_Click"/>t
private void confirmbtn_Click(object sender, RoutedEventArgs e, MainWindow mainWindowInstance)
{
///
}
我试图在这里获取 MainWindow mainWindowInstance,但每次我将它放在某个地方时,我都会一遍又一遍地遇到相同的错误
每个事件都有唯一的签名,您无法更改它。要获取 mainWindow 的实例,您可以使用其他方式。例如,您可以使用以下代码:
Window mainWindow = Application.Current.MainWindow;
通过此代码,您可以获得应用程序的主窗口。
foreach (Window window in Application.Current.Windows)
{
//
}
或者您可以使用此代码获取该按钮的父窗口
private Window FindParentWindow(DependencyObject child)
{
DependencyObject parent= VisualTreeHelper.GetParent(child);
//CHeck if this is the end of the tree
if (parent == null) return null;
Window parentWindow = parent as Window;
if (parentWindow != null)
{
return parentWindow;
}
else
{
//use recursion until it reaches a Window
return FindParentWindow(parent);
}
}
private void confirmbtn_Click(object sender, RoutedEventArgs e)
{
Window mainWindow = FindParentWindow(sender as DependencyObject);
}
或者您可能已经拥有它(如果此处理程序位于主窗口内)。