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

pax*_*blo 26 wpf xaml

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

我现在的XAML是:

<Image Name="imgPic1"
       Width="100"
       Height="75"
       Stretch="Fill"
       VerticalAlignment="Top" />
Run Code Online (Sandbox Code Playgroud)

我以为我会只是能够把一个单位保证金或填充的图像上,并设置背景颜色000000,但PaddingBackground是用来将图像都无效.

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

Cra*_*nec 58

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

<Border BorderThickness="1">
    <Image Name="imgPic1"
           Width="100"
           Height="75"
           Stretch="Fill"
           VerticalAlignment="Top" />
</Border>
Run Code Online (Sandbox Code Playgroud)

如果您不想围绕每个图像执行此操作,您还可以提供应用于执行此操作的图像的样式


Pax提供的答案和评论的最终解决方案:

<Border BorderThickness="1"
        BorderBrush="#FF000000"
        VerticalAlignment="Top">
    <Image Name="imgPic1"
           Width="100"
           Height="75"
           Stretch="Fill"
           VerticalAlignment="Top"/>
</Border>
Run Code Online (Sandbox Code Playgroud)


And*_*eas 9

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

我是这样解决的。

<Viewbox>
    <Border BorderThickness="3" BorderBrush="Red">
     <Image Stretch="None" ></Image>
    </Border>
   </Viewbox>
Run Code Online (Sandbox Code Playgroud)


Guy*_*hen 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>
Run Code Online (Sandbox Code Playgroud)

边框厚度和画笔很重要(如果你不选择颜色 - 你将看不到边框!)

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