2010-06-22 1367 views
22

我有一個StackPanel包含五個圖像,我想在每個圖像周圍放一個黑色邊框。如何在WPF中爲圖像添加邊框?

的XAML我目前所面對的是:

<Image Name="imgPic1" 
     Width="100" 
     Height="75" 
     Stretch="Fill" 
     VerticalAlignment="Top" /> 

我想我只是能夠把圖像上的一個單位保證金或填充,並設置背景顏色000000PaddingBackground對於圖像都是無效的。

什麼是在XAML中執行此操作的簡單方法?我是否真的必須將每個圖像放在另一個控件中以獲取邊框或者是否有其他一些我可以使用的技巧?

回答

49

簡單地包裹圖像中的邊境控制

<Border BorderThickness="1"> 
    <Image Name="imgPic1" 
      Width="100" 
      Height="75" 
      Stretch="Fill" 
      VerticalAlignment="Top" /> 
</Border> 

你也可以爲你提供樣式應用於圖像,做這個,如果你不想做周圍的每一個圖像


從回答和評論大同添加

最終的解決方案:

<Border BorderThickness="1" 
     BorderBrush="#FF000000" 
     VerticalAlignment="Top"> 
    <Image Name="imgPic1" 
      Width="100" 
      Height="75" 
      Stretch="Fill" 
      VerticalAlignment="Top"/> 
</Border> 
+0

這看起來不錯,但我怎麼做它黑色?設置背景影響邊框周圍的空間,而不是邊框​​本身,並且沒有顏色或前景屬性。 – paxdiablo 2010-06-22 12:38:02

+0

您必須使用BorderBrush屬性。您可以在那裏指定十六進制顏色,或者您可以指定更復雜的畫筆。如果你想它是黑色的,它會是BorderBrush =「#FF000000」 – 2010-06-22 12:46:34

+0

謝謝你,克雷格。現在它工作正常。 – paxdiablo 2010-06-22 12:49:52

2

我只是偶然發現了這篇文章,另一個答案並不正確。也許是因爲我現在使用框架4,這個帖子是舊的?

在任何情況下 - 如果有人將來看到這個偶然 - 這裏就是我的回答:

<Border Name="brdSiteLogo" 
      BorderThickness="2" 
      BorderBrush="#FF000000" 
      VerticalAlignment="Top" 
      HorizontalAlignment="Left" 
      Margin="12,112,0,0" 
      Height="128" 
      Width="128"> 

    <Image Name="imgSiteLogo"    
     HorizontalAlignment="Stretch" 
     VerticalAlignment="Stretch" 
     Stretch="Fill"/> 

    </Border> 

邊框厚度和刷子是重要的(如果你不會選擇一種顏色 - 你不會看到邊界!!!)

另外,邊框應該在窗口上對齊。圖像在邊界「內部」,因此您可以使用邊距或像我一樣對其進行拉伸。我解決了它這種方式

+0

感謝您的發佈!請勿在您的帖子中使用簽名/標語。您的用戶箱計爲您的簽名,您可以使用您的個人資料發佈您喜歡的任何關於您自己的信息。 [關於簽名/標語的常見問題](http://stackoverflow.com/faq#signatures) – 2013-02-26 05:37:12