如何在WPF中放置图像边框?

时间:2010-06-22 12:21:42

标签: wpf xaml

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

我目前的XAML是:

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

我以为我只能在图像上放置一个单位边距或填充,并将背景颜色设置为000000,但PaddingBackground对图像均无效

在XAML中执行此操作的简单方法是什么?我是否真的必须将每个图像放在另一个控件中以获得它周围的边框,还是我可以使用其他一些技巧?

3 个答案:

答案 0 :(得分:57)

只需将图像包装在边框控件

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

答案 1 :(得分:3)

我只是偶然发现了这篇文章而另一个答案没有成功。也许是因为我现在使用框架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>

边框粗细和画笔很重要(如果您不选择颜色 - 您将看不到边框!)

此外,边框应在窗口上对齐。图像位于边框“内部”,因此您可以使用边距或像我一样拉伸它。

答案 2 :(得分:1)

由于此处描述的问题,接受的答案将无效 https://wpf.2000things.com/2011/04/17/279-adding-a-border-around-an-image-control/

我这样解决了。

Date.prototype.timezone = function () {
    this.setHours(this.getHours() + (new Date().getTimezoneOffset() / 60));
    return this;
}