2009-07-25 14 views
9

मेरे आवेदन में मेरे पास एक विंडो है जिसका उपयोग मैं डीबग डेटा प्लॉट करने के लिए करता हूं। जब यह लोड होता है, तो मैं इसे अन्य सभी विंडोज़ के पीछे "पृष्ठभूमि में" खोलना चाहता हूं।पीठ पर एक डब्ल्यूपीएफ विंडो कैसे भेजें?

इसे प्राप्त करने का सबसे अच्छा तरीका क्या है?

उत्तर

1

क्या कोई विशेष कारण है कि आप विंडो को कम से कम स्थिति में दिखाना नहीं चाहते हैं और उपयोगकर्ता को इसे दिखाने की अनुमति देते हैं? कम से कम राज्य में खिड़की दिखा आपकी समस्या नहीं सुलझती, तो का उपयोग

<Window WindowState="Minimized" (...)> 
+0

मैं खिड़की में शुरू से ही खुला होना चाहता हूँ पृष्ठभूमि। आपके सुझाव के लिए धन्यवाद लेकिन यह मेरी मदद नहीं करता है। –

17

आप नीचे दिए गए कोड का उपयोग कर सकते हैं:

[DllImport("user32.dll")] 
static extern bool SetWindowPos(
    IntPtr hWnd, 
    IntPtr hWndInsertAfter, 
    int X, 
    int Y, 
    int cx, 
    int cy, 
    uint uFlags); 

const UInt32 SWP_NOSIZE = 0x0001; 
const UInt32 SWP_NOMOVE = 0x0002; 

static readonly IntPtr HWND_BOTTOM = new IntPtr(1); 

static void SendWpfWindowBack(Window window) 
{ 
    var hWnd = new WindowInteropHelper(window).Handle; 
    SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); 
} 

स्रोत: http://www.aeroxp.org/board/lofiversion/index.php?t4983.html

+0

वाह ... मुझे यकीन था कि उस पर ध्यान देने के लिए एक लाइनर होगा ... –

+0

तो, क्या मेरा जवाब आपके लिए काम करता था? फिर इसे स्वीकार्य के रूप में चिह्नित करें। – huseyint

+0

यह "DllImport" स्वीकार नहीं करेगा, मुझे क्या करना चाहिए? –

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