WPF में पहली विंडो से दूसरी विंडो कैसे खोलूं?


125

मैं WPF के लिए नया हूँ। मेरे पास दो विंडो हैं, जैसे कि window1 और window2। मेरे पास window1 में एक बटन है। अगर मैं उस बटन पर क्लिक करता हूं, तो विंडो 2 को खोलना होगा। उसके लिए मुझे क्या करना चाहिए?

यहाँ कोड मैंने कोशिश की है:

window2.show();

जवाबों:


237

में अपना कोड लिखें window1

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

क्या मैं इस लाइन को Window_Loaded घटना पर लिख सकता हूँ? यदि ऐसा है, तो दूसरी विंडो प्रदर्शित नहीं हो रही है।
मनीष दुबे

37

जब आपने एक नया WPF एप्लिकेशन बनाया है तो आपके पास एक .xaml फ़ाइल और एक .cs फ़ाइल होनी चाहिए। ये आपकी मुख्य विंडो को दर्शाते हैं। अपनी उप विंडो का प्रतिनिधित्व करने के लिए एक अतिरिक्त .xaml फ़ाइल और .cs फ़ाइल बनाएँ।

MainWindow.xaml

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    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();
    }
}

फिर आपको इन वर्गों के लिए जो भी अतिरिक्त कोड की आवश्यकता होगी, उसे जोड़ें:

SubWindow.xaml
SubWindow.xaml.cs

15
काफी सरल! मैं wpf से नफरत करता हूं, यह सिर्फ इतना जटिल है और इसे घुसपैठ के लिए बनाया गया है।
रेन


5

मान लें कि दूसरी विंडो के रूप में परिभाषित किया गया है public partial class Window2 : Window, तो आप इसे कर सकते हैं:

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

मैं window1 से window2 खोलना चाहता हूं।
ASHOK A

5

इससे मुझे मदद मिली: मालिक विधि मूल रूप से खिड़की को दूसरी खिड़की से जोड़ती है यदि आप उसी के साथ अतिरिक्त खिड़कियां चाहते हैं।

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

इस पर भी विचार करें।

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

5

WPF में हमारे पास Show () और ShowDialog () विधियों का उपयोग करके कुछ विकल्प हैं।

यदि आप एक नई विंडो खोलने पर खुली हुई खिड़की को बंद करना चाहते हैं, तो आप शो () विधि का उपयोग कर सकते हैं:

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

ShowDialog () भी एक विंडो खोलता है, लेकिन इस मामले में आप अपनी पहले से खोली गई विंडो को बंद नहीं कर सकते।


2

आपको इस तरह की एक नई विंडो का एक उदाहरण बनाने की आवश्यकता होगी।

var window2 = new Window2();

एक बार आपके पास उदाहरण है कि आप क्या करना चाहते हैं, इसके आधार पर आप शो () या शो - डाइलॉग () विधि का उपयोग कर सकते हैं।

window2.Show();

या

var result = window2.ShowDialog();

ShowDialog () Nullable<bool>यदि आप की जरूरत है कि वापस आ जाएगी


2

आप window1 में एक बटन बना सकते हैं और उस पर डबल क्लिक करें। यह एक नया क्लिक हैंडलर बनाएगा, जहाँ पर आप कुछ इस तरह लिख सकते हैं:

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

2

आप इस कोड का उपयोग कर सकते हैं:

private void OnClickNavigate(object sender, RoutedEventArgs e)
{
    NavigatedWindow navigatesWindow = new NavigatedWindow();
    navigatesWindow.ShowDialog();
}
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.