Как поместить границу вокруг изображения в WPF?
У меня есть StackPanel
, содержащий пять изображений, и я хочу поместить черную рамку вокруг каждого изображения.
В XAML у меня есть:
<Image Name="imgPic1"
Width="100"
Height="75"
Stretch="Fill"
VerticalAlignment="Top" />
Я думал, что просто смогу нанести одноразовый маркер или дополнение на изображение и установить цвет фона 000000
, но Padding
и Background
оба недопустимы для изображений.
Что такое простой способ сделать это в XAML? Должен ли я поместить каждое изображение внутри другого элемента управления, чтобы получить границу вокруг него или есть какая-то другая обманка, которую я могу использовать?
Ответы
Ответ 1
Просто оберните изображение в пограничном режиме
<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>
Ответ 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>
Толщина границы и кисть важны (если вы не будете выбирать цвет - вы не увидите границы!!!)
Кроме того, граница должна быть выровнена в вашем окне. Изображение находится внутри границы, поэтому вы можете использовать поля или просто растягивать его, как я.
Ответ 3
Принятый ответ не будет работать из-за описанной здесь проблемы
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>