इनमें से बहुत सारे उत्तर सरल हैं, और यदि कोई व्यक्ति WPF की शुरुआत कर रहा है, तो हो सकता है कि वे सभी "ins-and-outs" को नहीं जानते हों, क्योंकि यह किसी को "उपयोग .ShowDialog()
!" बताने की तुलना में अधिक जटिल है । लेकिन यह वह विधि है (नहीं .Show()
) जो आप अंतर्निहित विंडो का उपयोग ब्लॉक करने के लिए और कोड को चालू रखने के लिए उपयोग करना चाहते हैं जब तक कि मोडल विंडो बंद न हो जाए।
सबसे पहले, आपको 2 WPF विंडो की आवश्यकता है। (एक दूसरे को बुला रहा होगा।)
पहली विंडो से, मान लीजिए कि इसे MainWindow.xaml कहा जाता है, इसके कोड में पीछे होगा:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
फिर अपने XAML में अपना बटन जोड़ें:
<Button Name="btnOpenModal" Click="btnOpenModal_Click" Content="Open Modal" />
और Click
दिनचर्या पर राइट-क्लिक करें , "गो टू डेफिनिशन" चुनें। यह MainWindow.xaml.cs में आपके लिए इसे बनाएगा:
private void btnOpenModal_Click(object sender, RoutedEventArgs e)
{
}
उस फ़ंक्शन के भीतर, आपको उसके पृष्ठ वर्ग का उपयोग करके दूसरे पृष्ठ को निर्दिष्ट करना होगा। मान लें कि आपने उस दूसरे पृष्ठ का नाम "ModalWindow" रखा है, ताकि वह उसका पृष्ठ वर्ग बन जाए और यह है कि आप उसे कैसे कॉल (कॉल) करेंगे:
private void btnOpenModal_Click(object sender, RoutedEventArgs e)
{
ModalWindow modalWindow = new ModalWindow();
modalWindow.ShowDialog();
}
मान लें कि आपके पास अपने मोडल डायलॉग पर सेट की गई वैल्यू है। ModalWindow
XAML में एक टेक्स्टबॉक्स और एक बटन बनाएँ :
<StackPanel Orientation="Horizontal">
<TextBox Name="txtSomeBox" />
<Button Name="btnSaveData" Click="btnSaveData_Click" Content="Save" />
</StackPanel>
फिर एक ईवेंट हैंडलर (दूसरा Click
ईवेंट) बनाएं और टेक्स्टबॉक्स मान को सार्वजनिक स्थैतिक चर पर ModalWindow
और कॉल पर सहेजने के लिए इसका उपयोग करें this.Close()
।
public partial class ModalWindow : Window
{
public static string myValue = String.Empty;
public ModalWindow()
{
InitializeComponent();
}
private void btnSaveData_Click(object sender, RoutedEventArgs e)
{
myValue = txtSomeBox.Text;
this.Close();
}
}
फिर, अपने .ShowDialog()
बयान के बाद , आप उस मूल्य को पकड़ सकते हैं और उसका उपयोग कर सकते हैं:
private void btnOpenModal_Click(object sender, RoutedEventArgs e)
{
ModalWindow modalWindow = new ModalWindow();
modalWindow.ShowDialog();
string valueFromModalTextBox = ModalWindow.myValue;
}