2009-02-04 3 views
6

के लिए छवि और ठोस रंग पृष्ठभूमि को गठबंधन करें मेरे पास एक WPF फॉर्म है जिसे मैं बना रहा हूं। मैं खिड़की के लिए एक पृष्ठभूमि छवि निर्दिष्ट करना चाहता हूं, जो काफी आसान है। हालांकि, मैं एक रंग भी निर्दिष्ट करना चाहता हूं ताकि छवि के कवर न किए गए फॉर्म का क्षेत्र सफेद हो। मैंने कुछ उदाहरण देखे हैं जो दो अलग-अलग पृष्ठभूमि ब्रश का उपयोग करके दिखाते हैं, लेकिन जब मैं कोशिश करता हूं कि वीएस.नेट मुझे बताता है कि मेरे पास एकाधिक ब्रश नहीं हो सकते हैं।एक WPF फॉर्म

यह XAML मैं

<Window x:Class="Consent.Client.Shell" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:cal="http://www.codeplex.com/CompositeWPF" 
    Title="Shell" WindowStyle="None" WindowState="Maximized" FontSize="24"> 
    <Window.Background> 
     <ImageBrush AlignmentX="Left" AlignmentY="Top" Stretch="None" TileMode="None" ImageSource="logo_header2.png" /> 
    </Window.Background> 
    <ItemsControl Background="White" VerticalAlignment="Center" cal:RegionManager.RegionName="MainRegion" > 
    </ItemsControl> 
</Window> 

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

उत्तर

6

प्रयास करें इस (मैं सब कुछ सीधे सवाल करने के लिए के लिए प्रासंगिक नहीं हटाया कोड साफ):

<Window x:Class="Consent.Client.Shell" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Background="White"> 
    <Grid> 
     <Grid.Background> 
     <ImageBrush ImageSource="logo_header2.png" /> 
     </Grid.Background> 
     <ItemsControl> 
     </ItemsControl> 
    </Grid> 
</Window> 

असल में, छवि रंग के पीछे करने के लिए खिड़की की पृष्ठभूमि निर्धारित करते हैं, की तुलना में खिड़की में एक ग्रिड डाल दिया और आप ग्रिड पृष्ठभूमि छवि देने के लिए, सब कुछ ग्रिड के अंदर के बजाय विंडो में सीधे डाल ।

1

मुझे यकीन नहीं है कि आप ब्रश को जोड़ सकते हैं। आप ImageBrush के साथ चारों ओर खेल सकते हैं, या आप "पृष्ठभूमि" भूल जाते हैं और एक ग्रिड में एक दूसरे के ऊपर पर आइटम ढेर सकता है:

<Window x:Class="Consent.Client.Shell" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:cal="http://www.codeplex.com/CompositeWPF" 
    Title="Shell" WindowStyle="None" WindowState="Maximized" FontSize="24"> 
    <Grid> 
     <Image Source="logo_header2.png" Stretch="None" VerticalAlignment="Top" /> 
     <ItemsControl Background="White" VerticalAlignment="Center" cal:RegionManager.RegionName="MainRegion" > 
     </ItemsControl> 
    </Grid> 
</Window> 
2

Nirs उत्तर में एक एक्सटेंशन के रूप में। यदि आप अपनी सामग्री के चारों ओर मार्जिन चाहते हैं, लेकिन पृष्ठभूमि छवि को पूरी विंडो भरने में सक्षम होने दें, तो आप सीमाओं का उपयोग करके पृष्ठभूमि को भी ढेर कर सकते हैं:

<Window x:Class="Consent.Client.Shell" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Background="White"> 

    <Border Padding="10"> 
     <Border.Background> 
      <ImageBrush ImageSource="logo_header2.png" /> 
     </Border.Background> 
    <!--<Your content >--> 
    </Border> 

</Window> 

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

  • कोई संबंधित समस्या नहीं^_^