gpt4 book ai didi

c# - 如何引用与我的 metro 风格应用程序打包在一起的图像源文件?

转载 作者:太空狗 更新时间:2023-10-29 20:00:04 25 4
gpt4 key购买 nike

我有一个 .png 文件作为我的应用程序的内容。当我像这样在 xaml 中绑定(bind)它时

<ImageBrush x:Key="BtnBackImageBrush" ImageSource="/Assets/Images/back.png" />

一切正常

我读了this article当我尝试以编程方式访问此 .png 时,出现错误。

我使用的代码:

Uri baseUri = new Uri("ms:appx");
Image img = new Image();
img.Source = new BitmapImage(new Uri(baseUri, "/Assets/Images/back.png"));
img.ImageFailed += (sender, args) => new MessageDialog("Error").ShowAsync();

我的问题是如何引用与我的 metro 风格应用打包在一起的图像源文件?

感谢您的建议。

更新:我找到答案了!我们需要使用父 FrameworkElement 设置 baseUri 而不是手动设置。例如:

// Usage
myImage.Source = ImageFromRelativePath(this, "relative_path_to_file_make_sure_build_set_to_content");

public static BitmapImage ImageFromRelativePath(FrameworkElement parent, string path)
{
var uri = new Uri(parent.BaseUri, path);
BitmapImage result = new BitmapImage();
result.UriSource = uri;
return result;
}

感谢这个article .

最佳答案

new Uri("ms:appx");

我认为这是原始问题的根源。该方案是 ms-appx 而不是 ms:appx

错误的 URI:ms:appx://Assets/Images/back.png
好的 URI:ms-appx://Assets/Images/back.png

但是使用 FrameworkElement 并不是一个坏主意,如果您真的想像它的父级一样限定范围 - 即使两者都有效,后者可能对您的意图的读者来说更清楚(假设这是您的意图)。

关于c# - 如何引用与我的 metro 风格应用程序打包在一起的图像源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11814917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com