WinRT& Facebook SDK - ProfilePicture:如何确定图像即将呈现的时间?

时间:2013-11-30 21:38:12

标签: c# facebook windows-8 windows-runtime

在没有利用Image事件的情况下,您是否有办法确定ImageOpened的来源已设置?

我正在使用Facebook SDK,更具体地说是ProfilePicture控件,它没有此事件(不确定它是否与Image实际相关)而且我是想知道图像(个人资料图片)何时被下载并即将被显示。

P.S。 :我为更广泛的“观众”标记了,尽管我正在寻找适用于应用的答案,但我会抓住机会......

1 个答案:

答案 0 :(得分:0)

我无法通过ProfilePicture控件找到任何方法。相反,我现在在XAML中使用Image,可以确定何时将使用ImageOpened事件呈现图像。

首先,我使用Graph Search API获取图片的网址字符串:

https://graph.facebook.com/me/picture?redirect=false&width=320&height=320

完整的方法如下所示:

public static async Task<string> GetProfilePictureUrlAsync()
    {
        dynamic jsonData = await _facebookClient.GetTaskAsync("https://graph.facebook.com/me/picture?redirect=false&width=320&height=320");

        JObject result = JObject.Parse(jsonData.ToString());

        var array = new JArray(result["data"]);

        return (string) array[0].SelectToken("url");
    } 

然后我创建一个URI并将其分配给图像控件:

ProfileImage.Source = new BitmapImage(new Uri(await FacebookUtility.GetProfilePictureUrlAsync(), UriKind.Absolute));

ProfileImage是我在XAML中拥有的控件的名称)

希望这有助于其他可能遇到此问题的人:)