private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
Win1 OP= new Win1();
OP.show();
}
OP.show() がエラーをスローしています。
ユーザーコントロールフォームです。
それWin1
は「ユーザーコントロールフォームです」ということですね。(強調は私のものです)。
Win1
が実際に type の場合UserControl
、問題はその型がメソッドUserControl
を定義していないことです。Show()
したがって、ウィンドウとして「開く」ことはできません。
これを解決するには、ウィンドウを開き、そのウィンドウのコンテンツとして UC を使用する必要があります。
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
Win1 OP= new Win1();
var host = new Window();
host.Content = OP;
host.Show();
}
UserControl
補足として、App.xaml で asを使用できます。StartupUri
これは、フレームワークがウィンドウではないことを認識してウィンドウを作成するため、機能します。
ウィンドウを開き、最初のウィンドウを閉じます:
private void Button_Click(object sender, RoutedEventArgs e)
{
window2 win2= new window2();
win2.Show();
this.Close();
}
UserControl をウィンドウまたはダイアログ ボックスとして開くことはできません。コードビハインドまたはXAMLを使用してユーザーコントロールをウィンドウに追加し、そのウィンドウを開くことをお勧めします。そのウィンドウの DataContext を設定することを忘れないでください。親コントロール/ウィンドウのデータ コンテキストは、子コントロール/ユーザー コントロールに継承されることに注意してください。
ユーザーコントロールを直接表示することはできません。別のウィンドウでユーザーコントロールをレンダリングする必要があります。
お気に入り。
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
UserControl1 uc1 = new UserControl1();
var win = new MainWindow();
win.Content = win1;
win.Show();
}
ポップアップのようにしたい場合:
private void btn1_click(object sender, RoutedEventArgs e)
{
newWin win2 = new newWin();
win2.Show():
}