如何在WPF中给图片添加边框?

35

我有一个包含五张图片的StackPanel,我想在每张图片周围加上黑色边框。

目前我的XAML代码如下:

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

我原本以为只需要在图片上添加一个1个单位的margin或padding,并将背景色设置为000000,但是对于图片来说既无法使用Padding也无法使用Background

在XAML中有没有简单的方法可以实现这一点?我真的要将每个图像放在另一个控件内才能在其周围添加边框吗?或者还有其他诀窍可以使用吗?

3个回答

69

简单地将图像包裹在边框控件中。

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

如果您不想在每个图像周围进行操作,也可以提供应用此效果的样式。


Pax添加的回答和评论的最终解决方案:

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

看起来不错,但我怎么让它变成黑色呢?设置背景会影响边框周围的空间,而不是边框本身,并且没有颜色或前景属性。 - paxdiablo
1
你必须使用 BorderBrush 属性。你可以在那里指定一个十六进制颜色,也可以指定一个更复杂的画刷。如果你想要它是黑色的,应该使用 BorderBrush="#FF000000"。 - Craig Suchanec

9

5

我刚刚偶然发现了这篇文章,而且其他回答并没有起到作用。也许是因为我现在使用的是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>

边框厚度和画笔是重要的(如果您不选择颜色-您将看不到边框!!!)
此外,边框应该对齐在您的窗口上。图像在边框“内部”,因此您可以使用边距或像我一样拉伸它。

感谢您的帖子!请勿在帖子中使用签名/标语。您的用户框已经被视为您的签名,您可以使用个人资料来发布任何关于自己的信息。签名/标语常见问题解答 - Andrew Barber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接