2009-08-11 9 views

उत्तर

114

इसे Window पर रखें और Window.ShowDialog पर कॉल करें।

private void Button1_Click(object sender, EventArgs e) 
{ 
    Window window = new Window 
    { 
     Title = "My User Control Dialog", 
     Content = new MyUserControl() 
    }; 

    window.ShowDialog(); 
} 
+9

मैंने यह भी पाया कि SizeToContent = SizeToContent.WidthAndheight और ResizeMode = ResizeMode.NRResize को सहायक बनाना उपयोगी था, इसलिए यह उपयोगकर्ता को आकार को परिभाषित करने देता है। –

+2

हम इस उपयोगकर्ता नियंत्रण संवाद में 'this.Close()' फ़ंक्शन का उपयोग कैसे कर सकते हैं? –

+1

निजी शून्य btnClose_Click (ऑब्जेक्ट प्रेषक, रूटेडएवेंटएआरजी ई) { \t var parent = this. विंडो के रूप में अभिभावक; \t यदि (अभिभावक! = शून्य) \t { \t माता-पिता। DialogResult = true; \t \t parent.Close(); \t} } –

2

जहां तक ​​मुझे पता है कि आप ऐसा नहीं कर सकते हैं। यदि आप इसे एक संवाद में दिखाना चाहते हैं, तो यह बिल्कुल ठीक है, बस एक नई विंडो बनाएं जिसमें केवल आपके उपयोगकर्ता नियंत्रण शामिल हों, और उस विंडो का उदाहरण बनाने के बाद ShowDialog() को कॉल करें।

संपादित करें: UserControl वर्ग एक विधि ShowDialog शामिल नहीं है, इसलिए है कि आप क्या करने की कोशिश कर रहे हैं वास्तव में संभव नहीं है।

लेकिन यह है:

private void Button_Click(object sender, RoutedEventArgs e){ 
    new ContainerWindow().ShowDialog(); 
} 
-1

'sixlettervariables' द्वारा जवाब इतनी के रूप में संशोधित किया गया है, तो यह काम करता है

private void button1_Click (object sender, RoutedEventArgs e)     
{ 
    Window window = new Window 
    { 
     Title = "My User Control Dialog", 
     Content = new UserControl (), 
     Height = 200, // just added to have a smaller control (Window) 
     Width = 240 
    }; 

    window.ShowDialog (); 
} 
+9

आप 'पृष्ठभूमि = ब्रश। पुर्पल' भूल गए; यह इसके बिना काम नहीं करेगा। –

7
Window window = new Window 
      { 
       Title = "My User Control Dialog", 
       Content = new OpenDialog(), 
       SizeToContent = SizeToContent.WidthAndHeight, 
       ResizeMode = ResizeMode.NoResize 
      }; 
      window.ShowDialog(); 

मेरे लिए एक जादू की तरह काम किया है। इसे एक मॉडल संवाद के रूप में बनाया जा सकता है?


उत्तर: यह ShowDialog स्वयं यह मॉडल संवाद के रूप में बनाने के .. ...

+0

SizeToContent बहुत उपयोगी है। धन्यवाद। – honzakuzel1989

1
namespace System.Window.Form 
{ 
    public static class Ext 
    { 
     public static DialogResult ShowDialog(this UserControl @this, string title) 
     { 
      Window wind = new Window() { Title = title, Content = @this }; 
      return wind.ShowDialog(); 
     } 
    } 
} 

इसका इस्तेमाल UserControlInstance.ShowDialog के रूप में हो सकता है के रूप में सरल()। एक बेहतर अनुकूलित कार्यान्वयन विंडो क्लास को विस्तारित करके और किसी भी कार्यक्षमता प्राप्त करने के लिए डिज़ाइनर और कोड का उपयोग करके इसे अनुकूलित करना होगा।

+0

अच्छा उदाहरण, केवल डब्ल्यूपीएफ (System.Windows.Window.ShowDialog()) के मामले में वापसी का प्रकार बूल होना चाहिए? (निरर्थक प्रकार) –

संबंधित मुद्दे