繁体   English   中英

C#WPF图像不显示

[英]C# WPF Images not displaying

在我的代码中,我有3张空的图像,然后在后面的代码中设置了源。 我给他们的相对路径是正确的路径,但是图像仍然无法显示。 我不知道如何解决这个问题。

Xaml

<Border BorderThickness="1" Margin="44,135,433,248" BorderBrush="#FF000000">
  <Image x:Name="imageHelmet" HorizontalAlignment="Left" Height="116" Margin="-1" VerticalAlignment="Top" Width="127" MouseEnter="helmet_MouseEnter"/>
</Border>

背后

string source = @"..\..\..\Images\" + piece.Link;
BitmapImage bmp = new BitmapImage();
bmp.BeginInit();
bmp.UriSource = new Uri(source, UriKind.Relative);
bmp.EndInit();
imageChestplate.Source = bmp;

这只是其中之一,其余的都一样。

由于边框的边缘,图像可能被隐藏了,至少这是我尝试重新创建问题时所看到的。

在这里, BorderMargin属性设置为44,135,433,248 这意味着右侧的边距为433,底部的边距为248。

<Border BorderThickness="1" Margin="44,135,433,248" BorderBrush="#FF000000">

窗口的边缘算作边缘内有东西,因此,如果窗口太小,则边缘将不会留有足够的空间,因此边缘将被推到图像上方,将其隐藏。

要解决这种情况,请将空白处的right和bottom值更改为0 ,并将BorderHorizontalAlignmentLeft ,将VerticalAlignmentTop

<Border BorderThickness="1" Margin="44,135,0,0" BorderBrush="#FF000000" HorizontalAlignment="Left" VerticalAlignment="Top">
    <Image x:Name="imageHelmet" HorizontalAlignment="Left" Height="116" Margin="-1" VerticalAlignment="Top" Width="127" MouseEnter="helmet_MouseEnter"/>
</Border>

这样,在右侧和底部的边上就没有多余的空白可以推到图像上,并且对齐使之正确,因此可以正确使用左侧和顶部的对齐方式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM