2015-06-07 16 views
5

के तहत अंतर दिखता है मेरे पास WPFListView और ProgressBar के साथ एप्लिकेशन है। मैं अपने ProgressBar करने के लिए Foreground के रूप में इस रंग को परिभाषित:डब्ल्यूपीएफ: क्यों मेरा अग्रभूमि रंग विभिन्न ओएस

enter image description here

Windows 8 के तहत मैं इस रंग को देख सकते हैं लेकिन Windows 7 के तहत मैं अलग रंग देख सकते हैं:

enter image description here

तो मेरे सवाल है सभी ओएस में मेरी इच्छा रंग देखना संभव है?

संपादित करें:

यह शैली मैं बनाया है:

<Style x:Key="CustomProgressBar" TargetType="ProgressBar" > 
    <Setter Property="Foreground" Value="#FF15669E"></Setter> 
</Style> 

और ये मेरे ProgressBar है:

<ProgressBar Name="prog" Maximum="100" Value="{Binding Progress}" 
      Width="{Binding Path=Width, ElementName=ProgressCell}" Background="#FFD3D0D0" Style="{StaticResource CustomProgressBar}"/> 

लेकिन रंग नहीं बदला है।

+0

इस पहले से ही उत्तर प्रश्न पर एक नजर है: http://stackoverflow.com/ प्रश्न/4734814/wpf-progressbar-foreground-color शायद यह विंडोज 7 के साथ काम करता है। – dognose

उत्तर

1

यह काफी सरल है, तो आप सिर्फ अपने उपयोग करने की आवश्यकता है सीमा, PART_Track ग्रिड और आयत के अंदर संशोधित करने के लिए शैली (जो समग्र नियंत्रण का प्रगति हिस्सा है)।

<Style x:Key="CustomProgressBar" TargetType="ProgressBar" >    
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ProgressBar"> 
       <Border BorderBrush="Black" BorderThickness="1" Background="White" CornerRadius="0" Padding="0"> 
        <Grid x:Name="PART_Track"> 
         <Rectangle x:Name="PART_Indicator" HorizontalAlignment="Left" Fill="Blue" /> 
        </Grid> 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

यह विंडोज 7 या 8 के बीच भिन्न नहीं होना चाहिए: और प्रगति हिस्सा नीला -

एक उदाहरण है जहाँ मैं पूरी बात, सफेद सीमा काला की पृष्ठभूमि बनाया है है!

तो एक सफेद पृष्ठभूमि के साथ: enter image description here

या एक हरे रंग की पृष्ठभूमि के साथ:

<Border BorderBrush="Black" BorderThickness="1" Background="Green" CornerRadius="0" Padding="0"> 

enter image description here

+0

पृष्ठभूमि रंग के बारे में क्या?मैं इसे सफेद से किसी अन्य चीज़ में बदलने की कोशिश करता हूं लेकिन यह सफेद –

+0

बना रहा है, उदाहरण के लिए, पृष्ठभूमि = "व्हाइट" को पृष्ठभूमि = "बैंगनी" में बदलें (<सीमा ... शैली का हिस्सा) में। उदाहरण के साथ मैं इसका जवाब देने के लिए उत्तर अपडेट कर दूंगा। –

3

डिफ़ॉल्ट रूप से, डब्ल्यूपीएफ सिस्टम रंगों (ओएस पर आधारित) चुनता है यदि आपने नियंत्रण के लिए कोई शैलियों प्रदान नहीं की है। तुम बाहर सभी ओएस के माध्यम से अनूठी शैली को चलाना चाहते हैं तो आप नियंत्रण की शैलियों को ओवरराइड करने और अपने आवेदन को शैलियाँ Xaml विलय करने के लिए पूर्व के लिए करना होगा:

<Style x:Key="ButtonStyle" TargetType="Button"> 
     <Setter Property="Background" Value="Red"/> 
    </Style> 

    <Button Style="{StaticResource ButtonStyle}" /> 
+0

कृपया मेरी प्रगतिबार परिभाषा देखें, मुझे अपने मामले में क्या बदलने की ज़रूरत है? –

+0

आपको प्रगति पट्टी नियंत्रण की शैली को ओवरराइड करना है, न कि अग्रभूमि रंग या पृष्ठभूमि रंग। यह नियंत्रण का रंग केवल नियंत्रण की शैली नहीं बदलता – ReeganLourduraj

+0

कृपया मेरा अपडेट देखें, मैंने नई शैली बनाई है और इस शैली को मेरी प्रगति पट्टी में जोड़ दिया है, लेकिन ऐसा लगता है कि कुछ गलत है क्योंकि यह काम नहीं कर रहा है। –

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