2009-08-15 17 views
19

मेरे पास एक WPF विंडोज एप्लिकेशन है। मुझे शीर्षक पट्टी के पृष्ठभूमि रंग को बदलने की जरूरत है। मैं उसे कैसे कर सकता हूँ?डब्ल्यूपीएफ शीर्षक बार पृष्ठभूमि रंग बदलना

+0

संबंधित: http://stackoverflow.com/questions/9978444/how-can-i-style-the-border-and-title-bar-of-a-window-in-wpf। – DuckMaestro

उत्तर

10

डब्ल्यूपीएफ में टाइटलबार गैर-क्लाइंट क्षेत्र का हिस्सा है, जिसे WPF विंडो क्लास के माध्यम से संशोधित नहीं किया जा सकता है। आपको Win32 हैंडल में हेरफेर करने की आवश्यकता है (अगर मुझे सही याद है)।
यह लेख आपके लिए उपयोगी हो सकता है: Custom Window Chrome in WPF

7

तुम भी सीमारहित खिड़की बनाने के लिए, और सीमाओं और शीर्षक अपने आप को बार

+5

लेकिन फिर आपको सभी टास्कबार कार्यक्षमताओं को स्वयं बनाना होगा (जैसे डबल क्लिक पर आकार बढ़ाना, अधिकतम/बहाल करना, आइकन पर डबल क्लिक करें, ...)। –

+0

हाँ ... लेकिन यह कोई बड़ा सौदा नहीं है, उदाहरण के लिए ड्रैगमोव विधि इसे चलाना आसान बनाता है, और बाकी केक की शांति है;) –

+4

मुझे पता है ... लेकिन एक खुद का टाइटलबार बनाना मेरे लिए एक गंदे चाल की तरह लगता है (एक ही देखो और महसूस करने के अलावा एक बहुत कठिन काम imho है) –

14

कर सकते हैं यहाँ कैसे इस लक्ष्य को हासिल करने के बारे में एक उदाहरण है: कोड में

<Grid DockPanel.Dock="Right" 
     HorizontalAlignment="Right"> 


     <StackPanel Orientation="Horizontal" 
       HorizontalAlignment="Right" 
       VerticalAlignment="Center"> 

      <Button x:Name="MinimizeButton" 
       KeyboardNavigation.IsTabStop="False" 
       Click="MinimizeWindow" 
       Style="{StaticResource MinimizeButton}" 
       Template="{StaticResource MinimizeButtonControlTemplate}" /> 

      <Button x:Name="MaximizeButton" 
       KeyboardNavigation.IsTabStop="False" 
       Click="MaximizeClick" 
       Style="{DynamicResource MaximizeButton}" 
       Template="{DynamicResource MaximizeButtonControlTemplate}" /> 

      <Button x:Name="CloseButton" 
       KeyboardNavigation.IsTabStop="False" 
       Command="{Binding ApplicationCommands.Close}" 
       Style="{DynamicResource CloseButton}" 
       Template="{DynamicResource CloseButtonControlTemplate}"/> 

     </StackPanel> 
    </Grid> 
</DockPanel> 

हैंडल क्लिक करें घटनाक्रम -पीछे।

MouseDown के लिए -

App.Current.MainWindow.WindowState = WindowState.Minimized; 

DoubleClick और MaximizeClick

 if (App.Current.MainWindow.WindowState == WindowState.Maximized) 
     { 
      App.Current.MainWindow.WindowState = WindowState.Normal; 
     } 
     else if (App.Current.MainWindow.WindowState == WindowState.Normal) 
     { 
      App.Current.MainWindow.WindowState = WindowState.Maximized; 
     } 

मुझे आशा है कि इस मदद करता है के लिए -

App.Current.MainWindow.DragMove(); 

के लिए बटन को कम करें।

-Sushant

+0

ApplicationCommands.Close मेरे लिए काम नहीं किया। मैंने एप्लीकेशन का इस्तेमाल किया। Current.MainWindow.Close(); एक आदेश में इसके अलावा ग्रिड के लिए कोई डबलक्लिक नहीं है, मैंने MouseLeftButtonDown का उपयोग किया और इसका इस्तेमाल किया। अगर (ई। क्लिक करें == 2) { अधिकतम(); } अन्य { आवेदन। वर्तमान। मेनविंडो.ड्रागमोव(); } – Tempeck

1

चेक निम्न नमूना WPF customizing the appearance of a window in XAML

यह नमूना दिखाता है कि पूरी तरह से शैली/एक खिड़की की उपस्थिति, गैर ग्राहक क्षेत्रों सहित अनुकूलित करने के लिए: शीर्षक पट्टी, बॉर्डर, अधिकतम, न्यूनतम और अभी भी सभी अपेक्षित कार्यक्षमता प्रदान करते हुए बंद बटन।

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