小编azh*_*kov的帖子

如何引用我的metro风格应用程序打包的图像源文件?

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

<ImageBrush x:Key="BtnBackImageBrush" ImageSource="/Assets/Images/back.png" />
Run Code Online (Sandbox Code Playgroud)

一切还好.

我读了这篇文章,当我尝试以编程方式访问此.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();
Run Code Online (Sandbox Code Playgroud)

我的问题是如何引用我的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;
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的这篇文章.

c# microsoft-metro windows-8

7
推荐指数
2
解决办法
2万
查看次数

引用类的值类型成员时是否会发生拆箱?

我读了什么是拳击和拆箱,有什么权衡?但无法理解一件事.假设我有一个班级:

class MyClass
{
    public int Value { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想在我的方法中获得价值:

void MyFunc(MyClass cls)
{
    int i = cls.Value;
}
Run Code Online (Sandbox Code Playgroud)

作为一个放在堆中的类,我猜那个值也放在堆中了吗?因此操作

int i = cls.Value;
Run Code Online (Sandbox Code Playgroud)

拆箱?或者它不是拆箱?

.net c# unboxing

6
推荐指数
3
解决办法
1277
查看次数

DaemonStage和ElementProblemAnalyzer有什么区别?

我正在开发Resharper插件,我没有意识到Deamon阶段和元素问题分析器之间?

当我需要使用一个或另一个?如果它们都提供代码分析.

resharper resharper-sdk

1
推荐指数
1
解决办法
86
查看次数