5
private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            Win1 OP= new Win1();
            OP.show();
        }

OP.show() がエラーをスローしています。

ユーザーコントロールフォームです。

4

6 に答える 6

7

それ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これは、フレームワークがウィンドウではないことを認識してウィンドウを作成するため、機能します。

于 2013-10-22T04:41:25.617 に答える
2

ウィンドウを開き、最初のウィンドウを閉じます:

private void Button_Click(object sender, RoutedEventArgs e)
    {            
        window2 win2= new window2();
        win2.Show();
        this.Close();
    }
于 2013-10-21T20:42:36.110 に答える
1

UserControl をウィンドウまたはダイアログ ボックスとして開くことはできません。コードビハインドまたはXAMLを使用してユーザーコントロールをウィンドウに追加し、そのウィンドウを開くことをお勧めします。そのウィンドウの DataContext を設定することを忘れないでください。親コントロール/ウィンドウのデータ コンテキストは、子コントロール/ユーザー コントロールに継承されることに注意してください。

于 2013-10-23T12:23:05.667 に答える
0

ユーザーコントロールを直接表示することはできません。別のウィンドウでユーザーコントロールをレンダリングする必要があります。

お気に入り。

private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
{
  UserControl1 uc1 = new UserControl1();

  var win = new MainWindow();

  win.Content = win1;

  win.Show();
}
于 2013-10-22T05:01:02.900 に答える
0

ポップアップのようにしたい場合:

private void btn1_click(object sender, RoutedEventArgs e)
{
    newWin win2 = new newWin();
    win2.Show():
}
于 2015-07-09T16:34:31.053 に答える