2009-11-12 16 views
16

मैं अपने आप पर डब्ल्यूपीएफ सीख रहा हूं और मुझे यह काम करने का कोई तरीका नहीं दिख रहा है।मेरे WPF फ़ॉर्म के लिए एक TILED पृष्ठभूमि छवि के रूप में एक पीएनजी छवि कैसे सेट करें?

<Window x:Class="Test.MainWindow" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="Test" Height="600" Width="800" > 
<DockPanel> 
    <Menu DockPanel.Dock="Right" 
      Height="30"    
      VerticalAlignment="Top" 
      Background="#2E404B" 
      BorderThickness="2.6"> 
     <Menu.BitmapEffect> 
      <DropShadowBitmapEffect Direction="270" ShadowDepth="3" Color="#2B3841"/> 
     </Menu.BitmapEffect>       
    </Menu> 
</DockPanel> 

कैसे मैं एक टाइलों पृष्ठभूमि छवि प्रदर्शित कर सकते हैं:

यहाँ मेरी कोड है?

उत्तर

24

द्वारा MenuItem बदलने या, शायद करने के लिए है के लिए एक पृष्ठभूमि बनाना चाहते हैं, आप Visual Brush इस्तेमाल कर सकते हैं:

<Window 
    x:Class="Test.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Test" Height="600" Width="800"> 
    <Window.Background> 
    <VisualBrush TileMode="Tile" Viewport="0,0,0.5,0.5"> 
     <VisualBrush.Visual> 
     <Image Source="image.png"></Image> 
     </VisualBrush.Visual> 
    </VisualBrush> 
    </Window.Background> 
</Window> 
+0

क्या आप कृपया बताएं कि व्यूपोर्ट में चार अंकों का क्या अर्थ है? मैंने उनके साथ खेला है, लेकिन मुझे लगता है कि संक्षेप में क्या करना है। –

+5

व्यूपोर्ट संपत्ति बेस टाइल की स्थिति और आयाम सेट करती है। यहां उदाहरणों पर एक नज़र डालें: http://msdn.microsoft.com/en-us/library/system.windows.media.tilebrush.viewport.aspx असल में, "0,0,0.5,0.5" का अर्थ है कि आधार टाइल बिंदु (0,0) से (0.5,0.5) तक स्थान ले जाएगा - यानी आउटपुट क्षेत्र के ऊपरी बाएं कोने से केंद्र तक। (1,1) निचला दायां कोने है। आपको एमएसडीएन लाइब्रेरी का उपयोग करना चाहिए। यह वास्तव में उपयोगी है। सभी जवाब वहाँ हैं। – jfrej

1

आप ImageBrush मार्कअप जोड़ने के लिए नियंत्रित करने के लिए एक पृष्ठभूमि छवि सेट करने के लिए

<MenuItem.Background> 
    <ImageBrush ImageSource="path/to/image.png" /> 
</MenuItem.Background> 

आप पूरे खिड़की आप विंडो

44

पूर्ण करने के लिए ViewportUnits, जो आप व्यूपोर्ट में अपनी छवि के पिक्सेल आकार को परिभाषित करने की अनुमति देगा सेट करें। मेरे उदाहरण में छवि का आकार 32x32 है।

<Window.Background> 
    <ImageBrush ImageSource="image.png" TileMode="Tile" ViewportUnits="Absolute" Viewport="0,0,32,32"/> 
</Window.Background> 
+4

यह एक बेहतर उत्तर है –

+0

स्वीकृत उत्तर मेरे लिए काम नहीं करता है; यह एक किया था। – RandomEngy

+1

ओह मैन, मैं यह पता लगाने की कोशिश कर रहा था कि यह मेरे लिए क्यों काम नहीं कर रहा था, मैं अपने बालों को खींच रहा था। बाहर निकलता है मैं 'ViewportUnits' के बजाय' ViewboxUnits' का उपयोग कर रहा था: एस – craftworkgames

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