2009-11-19 11 views

उत्तर

24

प्लेसमेंट और प्लेसमेंट लक्ष्य गुणों का उपयोग विंडो के रूट पर जो भी पैनल है उससे संबंधित स्थिति के लिए करें।

<Popup 
    PlacementTarget="{Binding ElementName=MainPanel}" 
    Placement="Center" 
> 
+2

और यदि आप नेस्टेड उपयोगकर्ता-नियंत्रण की श्रृंखला का उपयोग करते हैं ???? – landoncz

+3

प्रश्न स्क्रीन के केंद्र के लिए था, पैनल या खिड़की का केंद्र नहीं। –

+2

यह सवाल का जवाब नहीं देता है। यह स्क्रीन के बीच में पॉपअप के शीर्ष बाएं कोने को रखेगा, यह पॉपअप – Brandon

2

सबसे पहले, आप स्क्रीन की ऊंचाई और चौड़ाई प्राप्त करने के लिए System.Windows.SystemParameters कक्षा के , FullPrimaryScreenWidth के स्थिर गुणों का उपयोग कर सकते हैं। फिर, आप इसे दिखाने से पहले चौड़ाई और ऊंचाई का उपयोग करके अपने पॉपअप नियंत्रण के Top और Left गुणों को सेट कर सकते हैं।

कुछ पसंद है।

double primScreenHeight = System.Windows.SystemParameters.FullPrimaryScreenHeight; 
double primScreenWidth = System.Windows.SystemParameters.FullPrimaryScreenWidth; 
_yourControl.Top = (primScreenHeight - _yourControl.Height)/2; 
_yourControl.Left = (primScreenWidth - _yourControl.Width)/2; 
2

उपयोग कंटेनर के रूप में ग्रिड और संरेखण आप के लिए ठीक काम करेगा:: तो अगर मैं एक Grid, StackPanel, आदि उस खिड़की MainPanel कहा जाता है में अन्य सभी "सामान" शामिल है, मैं की तरह कुछ करना

<Popup IsOpen="True"> 
    <Grid Name="canvasMain"> 
    <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center"> 
     ... 
    </StackPanel> 
    </Grid> 
</Popup> 
+0

इतना आसान नहीं होगा लेकिन पूरी तरह से काम करता है – BastanteCaro

+0

मैंने कोशिश की और यह काम नहीं करता है। ऐसा लगता है कि यह पॉपअप की सामग्री को केंद्रित करता है, न कि पॉपअप स्वयं। –

2

इनमें से कोई भी जवाब मेरे लिए काम नहीं करता क्योंकि मेरे पास पॉपअप का आकार नहीं है। मैंने निम्नानुसार कोड में इसे समाप्त कर दिया:

var popup = new Popup 
{ 
    Child = new YourUIControlHere(), 
    Placement = PlacementMode.Center, 
    PlacementRectangle = new Rect(new Size(
     SystemParameters.FullPrimaryScreenWidth, 
     SystemParameters.FullPrimaryScreenHeight)) 
}; 

यह आसानी से स्क्रीन आकार के लिए बाध्यकारी जोड़कर XAML तक बढ़ाया जा सकता है।

बहु-मॉनीटर समर्थन के लिए वर्तमान स्क्रीन का उपयोग करना एक स्पष्ट वृद्धि है। वर्तमान विंडो आयाम प्राप्त करना काफी अधिक काम है।

+0

यह मेरे लिए सही समाधान था! –

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