【发布时间】:2016-01-13 13:55:41
【问题描述】:
我正在尝试添加一个图像作为用户控件的背景。根据变量的值,我需要更改该背景,但无论我使用什么路径或 Uri 格式,背景都不会改变。
我在 stackoverflow 中看到了很多问题,但没有一个能解决我的一个问题。 我让下面的代码:
if (callback.liveUvis.ContainsUVI(uvi))
{
this.Status.Text = "LIVE";
ImageBrush imgB = new ImageBrush();
BitmapImage btpImg = new BitmapImage();
btpImg.UriSource = new Uri(@"///IMG///Live///bck_frame_info_video_live.png", UriKind.Relative);
//imgB.ImageSource = new BitmapImage(new Uri("~/IMG/Live/bck_frame_info_video_live.png", UriKind.RelativeOrAbsolute));
//imgB.ImageSource = new BitmapImage(new Uri("ms-appx:///IMG/Live/bck_frame_info_video_live.png"));
imgB.ImageSource = btpImg;
this.Background = imgB;
}
我在尝试附加图像时遇到了同样的问题...我想这也取决于 Uri 格式,但我也让代码以防万一:)
private void setIcon_Desc(string dd)
{
try
{
Image img = new Image();
img.Source = new BitmapImage(new Uri(this.BaseUri, "IMG/pictos_small/white/160dpi/" + dd + ".png"));
img.Stretch = Stretch.None;
this.Icon = img;
this.Sport.Text = callback.disc.getDescription(dd).ToUpper();
}
catch(Exception ex)
{
callback.exception.writeExceptions(ex);
}
}
提前致谢!
【问题讨论】:
-
图片是否包含在项目中?确保编译操作设置为“内容”
-
@KooKiz 是的,我在项目中有一个包含子文件夹和图像的文件夹(我知道在 Android 中,如果图像位于子文件夹中,则无法使用它们,我忽略它是否相同UWP...)。当您说“确保构建操作设置为‘内容’”时,您的意思是图像对吗?
-
是的,在文件属性中(在Visual Studio的解决方案资源管理器中,在文件中右击,点击属性,应该有一个名为“Build Action”的文件)。如果构建操作设置为内容,那么您应该能够使用
<Image Source="IMG/Live/bck_frame_info_video_live.png" />之类的东西打开文件(也就是说,如果您的图片位于“IMG”文件夹的“Live”子文件夹中)。使用Uri对象时可能会有一些微妙之处,因此我建议首先使用我提供的代码直接从 XAML 尝试 -
我已经检查了图像的构建操作是否设置为“内容”并且它是......问题是我必须从后面的代码中添加图像......我没有那里的选择:(但是我在其他页面中使用了图像,并且我已经能够从 XAML 添加它们,问题出在 CS 文件中
-
好了,那我们就可以专注于uri格式了。您可能想试试这个:stackoverflow.com/a/9562069/869621 这是
ms-appx方案,但只有一个 /
标签: c# win-universal-app uwp windows-10-mobile