Cum pot deschide o a doua fereastră din prima fereastră în WPF? (Programare, C#, Wpf)

ASHOK A a intrebat.

Sunt nou în WPF. Am două ferestre, cum ar fi fereastra1 și fereastra2. Am un buton în fereastra1. Dacă fac clic pe acel buton, fereastra2 trebuie să se deschidă. Ce ar trebui să fac pentru asta?

Iată codul pe care l-am încercat:

window2.show();

9 răspunsuri
Chandru A

Scrieți codul dvs. în window1.

private void Button_Click(object sender, RoutedEventArgs e)
{
    window2 win2 = new window2();
    win2.Show();
}

Comentarii

  • Pot să scriu această linie pe evenimentul Window_Loaded? Dacă da, atunci a doua fereastră nu se afișează. –  > Por Manish Dubey.
TokyoMike

Când ați creat o nouă aplicație WPF, ar trebui să aveți un fișier .xaml și un fișier .cs. Acestea reprezintă fereastra dvs. principală. Creați un fișier .xaml și un fișier .cs suplimentare pentru a reprezenta fereastra secundară.

MainWindow.xaml

<Window x_Class="WpfApplication2.MainWindow"
    
    xmlns_x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Button Content="Open Window" Click="ButtonClicked" Height="25" HorizontalAlignment="Left" Margin="379,264,0,0" Name="button1" VerticalAlignment="Top" Width="100" />
    </Grid>
</Window>

MainWindow.xaml.cs

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void ButtonClicked(object sender, RoutedEventArgs e)
    {
        SubWindow subWindow = new SubWindow();
        subWindow.Show();
    }
}

Adăugați apoi orice cod suplimentar de care aveți nevoie la aceste clase:

SubWindow.xaml
SubWindow.xaml.cs

Comentarii

    16

  • destul de simplu! Urăsc wpf, este atât de inutil de complicat și conceput pentru a fi contraintuitiv. –  > Por Ren.
KF2
private void button1_Click(object sender, RoutedEventArgs e)
{
    window2 win2 = new window2();
    win2.Show();
}

Vladislav Zorov

Presupunând că a doua fereastră este definită ca public partial class Window2 : Window, o puteți face prin:

Window2 win2 = new Window2();
win2.Show();

Comentarii

  • vreau să deschid fereastra 2 din fereastra 1. –  > Por ASHOK A.
Jeandre Van Dyk

Acest lucru m-a ajutat: Metoda Owner leagă practic fereastra de o altă fereastră în cazul în care doriți ferestre suplimentare cu aceleași.

LoadingScreen lc = new LoadingScreen();
lc.Owner = this;
lc.Show();

Luați în considerare și acest lucru.

this.WindowState = WindowState.Normal;
this.Activate();

user1399377

În WPF avem câteva opțiuni prin utilizarea metodelor Show() și ShowDialog().

Ei bine, dacă doriți să închideți fereastra deschisă atunci când se deschide o nouă fereastră, atunci puteți folosi metoda Show():

Window1 win1 = new Window1();
win1.Show();
win1.Close();

ShowDialog() deschide, de asemenea, o fereastră, dar în acest caz nu puteți închide fereastra deschisă anterior.

jsw

Va trebui să creați o instanță a unei ferestre noi astfel.

var window2 = new Window2();

Odată ce aveți instanța, puteți folosi metoda Show() sau ShowDialog() în funcție de ceea ce doriți să faceți.

window2.Show();

sau

var result = window2.ShowDialog();

ShowDialog() va returna un Nullable<bool> în cazul în care aveți nevoie de aceasta.

LadislavM

Poți crea un buton în fereastra1 și să dai dublu click pe el. Se va crea un nou manager de clic, unde în interior poți scrie ceva de genul acesta:

var window2 = new Window2();
window2.Show();

ibmstafa

Puteți folosi acest cod:

private void OnClickNavigate(object sender, RoutedEventArgs e)
{
    NavigatedWindow navigatesWindow = new NavigatedWindow();
    navigatesWindow.ShowDialog();
}

Tags:,