2011-09-06 13 views
5

मैं एक WPF पॉपअप नियंत्रण का उपयोग कर रहा हूँ। मैं इसे अपनी एप्लिकेशन विंडो के अंदर दिखाना चाहता हूं, जो खिड़की के निचले दाएं कोने में लगी हुई है। पॉपअप की वास्तविक ऊंचाई और चौड़ाई प्रदर्शित होने वाले संदेश के आधार पर बदल जाएगी।मैं एक आवेदन के निचले दाएं कोने में एक WPF पॉपअप कैसे दिखाई दे सकता हूं?

यदि यह महत्वपूर्ण है, तो पॉपअप की सामग्री एक सीमा है, जो एक स्टैकपैनल को लपेटती है, जिसमें एकाधिक टेक्स्टब्लॉक होते हैं।

किसी भी मदद के लिए धन्यवाद।

उत्तर

0

यह काफी मुश्किल है, और इसका कोई आसान जवाब नहीं है। अपने प्रश्न पर, आप राज्य:

वास्तविक ऊंचाई और पॉपअप की चौड़ाई संदेश यह है कि प्रदर्शित किया जा रहा है के आधार पर बदल जाएगा।

आपको कोई चिंता नहीं होनी चाहिए, यह WPF पॉपअप नियंत्रण का डिफ़ॉल्ट व्यवहार है।

चरणों पदों आप होना चाहते हैं सुनिश्चित करने के लिए

हैं:

  1. , अनुप्रयोग विंडो को PlacementTarget सेट
  2. पॉपअप पूर्ण करने के बजाय रिश्तेदार का उपयोग कर रखा जाएगा है, क्योंकि प्रारंभिक स्थिति हमेशा ऊपरी बाएं लेकिन सटीक प्लेसमेंट आपके आवेदन के किनारे से भी संबंधित है, इसका मतलब है कि आपको कस्टम प्लेसमेंट का उपयोग करना होगा।

पॉपअप का रिवाज देने का उपयोग करने के बारे में अधिक जानकारी के लिए देखें:

How to: Specify a Custom Popup Position

2

मैं बस कुछ इस तरह किया है, और यह वास्तव में है कि मुश्किल नहीं है, लेकिन यह अपने पॉपअप का रिवाज नियुक्ति की आवश्यकता होती है । जब आप अपनी पॉपअप घोषित करते हैं तो बस प्लेसमेंटमोड प्रॉपर्टी को कस्टम पर सेट करें, फिर कस्टमपॉपअप प्लेसमेंट कॉलबैक प्रॉपर्टी को उस विधि पर सेट करें जिसका आप उपयोग करना चाहते हैं।

this.trayPopup.CustomPopupPlacementCallback = GetPopupPlacement; 

private static CustomPopupPlacement[] GetPopupPlacement(Size popupSize, Size targetSize, Point offset) 
{ 
    var point = SystemParameters.WorkArea.BottomRight; 
    point.Y = point.Y - popupSize.Height; 
    return new[] { new CustomPopupPlacement(point, PopupPrimaryAxis.Horizontal) }; 
} 
+0

यह अपने प्रदर्शन के निचले दाएं कोने जो आवश्यक रूप से अपने खिड़की के नीचे दाईं ओर नहीं है पर पॉपअप anchores। – sebingel

4

उपयोग PlacementTarget, प्लेसमेंट = वाम, क्षैतिज/VerticalOffset

<Popup IsOpen="{Binding ElementName=togglebutton, Path=IsChecked, Mode=TwoWay}" 
     PlacementTarget="{Binding ElementName=togglebutton}" 
     Placement="Left" 
     HorizontalOffset="{Binding ActualWidth, ElementName=togglebutton}" 
     VerticalOffset="{Binding ActualHeight, ElementName=togglebutton}"> 
संबंधित मुद्दे