इनमें से बहुत से उत्तर सरल हैं, और यदि कोई डब्ल्यूपीएफ शुरू कर रहा है, तो वे सभी "इन-एंड-आउट" नहीं जानते हैं, क्योंकि यह किसी को ".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;
}
मैं, सीख रहा हूँ hehe ... बहुत अच्छा, धन्यवाद मत भूलना –
स्थापित करने के लिए संवाद विंडो पर मालिक संपत्ति। अन्यथा, उपयोगकर्ता को अजीब व्यवहार मिलेगा जब Alt + Tabbing, आदि –
@EdwardBrey गंभीर रूप से बड़ी पीईटी PEEVE –