c# - 图片边框控制换行问题

标签 c# wpf image

在下面的示例中,我的边框环绕图像。因为我使用 DecodePixelWidth 来保持纵横比,所以边框没有紧紧环绕图像。两侧的边界正好靠在图像上,另外两个与控件有间隙。有没有一种干净的方法可以让边框在保持纵横比的同时包裹图像,而不是将图像拉伸(stretch)设置为填充。

BitmapImage bitmapIkon = new BitmapImage();
bitmapIkon.BeginInit();
bitmapIkon.CacheOption = BitmapCacheOption.OnLoad;
bitmapIkon.CreateOptions = BitmapCreateOptions.IgnoreImageCache;

bitmapIkon.UriSource = new Uri(imagePath);

bitmapIkon.DecodePixelWidth = decodePixelWidth;
bitmapIkon.EndInit();
iImage.MinWidth=width;
iImage.MinHeight=height;
iImage.Source = bitmapIkon;
<Border Width="Auto" Height="Auto" Name="borderImageData"  HorizontalAlignment="Center" VerticalAlignment="Center" BorderBrush="Black" BorderThickness="1" CornerRadius="0">
    <Image Name="iImage" Stretch="Uniform" />
</Border>

最佳答案

像这样的东西应该可以工作:

<Grid HorizontalAlignment="Center" VerticalAlignment="Center">
    <TextBox Name="iImage" Text="Uniform" Margin="1" />
    <Border Name="borderImageData" BorderBrush="Black" BorderThickness="1" CornerRadius="0" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
</Grid>

如此有效,Grid 的大小适合图像加上 1 的边距。然后 Border 拉伸(stretch)以填充 Grid,并在图像的顶部绘制它的边框。

如果您要经常使用它,那么您可能希望将它包装在一个自定义控件中。

关于c# - 图片边框控制换行问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5708748/

相关文章:

javascript - 从标签中删除类

c# - 模拟/ stub 系统资源(如 System.Threading.Mutex)的首选方法

c# - MVVM - 用户控件相互通信的理想方式是什么

.net - 为什么 DialogResult 在 WPF 中是可为空的 bool 值?

css - 将 div 缩小为具有百分比高度的图像

java - 使用 ImageIO 发送图像后从 ImageIO 读取图像时出现未知字节

c# - nhibernate queryover.where 错误

c# - 如何从 Controller 将数据传递到 View 中的jquery

wpf - 如何在 WPF 中为 MVVM 实现多状态复选框

image - 如何在终端中查找特定大小的图像?