2009-11-12 11 views
16

WPF'yi kendi başıma öğreniyorum ve bu işi yapmanın bir yolunu bulamıyorum.WPF formum için TILED arkaplan görüntüsü olarak bir .PNG resmi nasıl ayarlanır?

<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> 

nasıl kiremitli arka plan görüntüsü görünmesini sağlayabilirsiniz:

İşte benim kod?

cevap

24

tarafından Menuıtem değiştirmek Veya zorunda Bütün pencere için bir arka plan yapmak istiyorsanız

<MenuItem.Background> 
    <ImageBrush ImageSource="path/to/image.png" /> 
</MenuItem.Background> 
, Eğer Visual Brush kullanabilirsiniz:

<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

ViewPort'taki dört hanenin ne anlama geldiğini açıklar mısınız? Onlarla oynadım, ama ne yaptıklarını anlayamıyorum. –

+5

Viewport özelliği, temel döşemenin konumunu ve boyutlarını ayarlar. Örneklere şu adresten bakabilirsiniz: http://msdn.microsoft.com/en-us/library/system.windows.media.tilebrush.viewport.aspx Temel olarak "0,0,0,5,0,5" ifadesi, Taban plakası (0,0) ila (0,5,0,5) noktasından - yani çıkış alanının sol üst köşesinden merkeze - yer kaplar. (1,1) sağ alt köşedir. MSDN Kitaplığı'nı kullanmalısınız. Gerçekten faydalı. Bütün cevaplar orada. – jfrej

1

Eğer ImageBrush işaretleme eklemek zorunda kontrol etmek için bir arka plan Resmi ayarlamak için

Eğer belki Window

44

Eğer Viewport da görüntünün piksel boyutunu tanımlamak sağlayacak mutlak için ViewportUnits, ayarlayın. Örneğimde görüntü boyutu 32x32'dir.

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

Bu daha iyi bir cevap –

+0

Kabul edilen cevap benim için işe yaramadı; Bu yaptı. – RandomEngy

+1

Ah adam, bunun benim için neden çalışmadığını anlamaya çalışarak saçlarımı çekiyordum. "ViewportUnits" yerine "ViewboxUnits" kullandığım çıkıyor: S – craftworkgames

İlgili konular