图像在XAML与C#中的显示方式不同

时间:2014-05-12 07:55:25

标签: c# image xaml windows-phone-8

我想在网格中显示图像

当我使用这个XAML时

Only the image shows

<Image Source="/Assets/O.png"
       Grid.Column="6"
       Grid.Row="5"/>

在C#中,它显示带有边框的图片:

Image img = new Image();
BitmapImage bi = new BitmapImage();
bi.UriSource = new Uri("/Assets/O.png", UriKind.Relative);
img.Stretch = Stretch.Fill;
img.Source = bi;
Grid.SetColumn(img, 6);
Grid.SetRow(img, 7);
gridGameBoard.Children.Add(img);

Image img1 = new Image();
img1.Source = new System.Windows.Media.Imaging.BitmapImage(new Uri("/Assets/X.png", UriKind.Relative));
Grid.SetColumn(img1, 4);
Grid.SetRow(img1, 4);
gridGameBoard.Children.Add(img1);

我尝试使用谷歌搜索找到BitmapImage和其他图像类型之间的任何差异,但是没有成功。

1 个答案:

答案 0 :(得分:1)

问题是Stretch的{​​{1}}属性。在XAML中,您没有定义它,因此使用默认值Image。在C#代码中,您有Uniform

我的猜测是边框位于图片中,但是在带有img.Stretch = Stretch.Fill;的C#代码中缩小了图片,带有Fill的XAML变体会缩放图像并使其居中以便边框不可见。