1

我正在尝试为 Windows 8.1 应用程序创建辅助磁贴,我需要此磁贴包含所有尺寸的图像,并且所有图像都来自互联网。这是我的代码:

       string dynamicTileId = selectedItem.UniqueId;
        string sLogo = selectedItem.logo;
        string wLogo = selectedItem.widelogo;
        string lLogo = selectedItem.imagen3;



        Uri logo = new Uri(sLogo);//150x10 image
        Uri wideLogo = new Uri(wLogo);//310x150 image
        Uri largeLogo = new Uri(lLogo);//310x310 image
        string tileActivationArguments = dynamicTileId;


        var secondaryTile = new SecondaryTile(dynamicTileId, selectedItem.Title, tileActivationArguments, largeLogo, TileSize.Square310x310);

        secondaryTile.VisualElements.ForegroundText = ForegroundText.Light;
        secondaryTile.VisualElements.BackgroundColor = Colors.CadetBlue;
        secondaryTile.VisualElements.Square310x310Logo = largeLogo;
        secondaryTile.VisualElements.Square150x150Logo = logo;
        secondaryTile.VisualElements.Wide310x150Logo = wideLogo;



        await secondaryTile.RequestCreateAsync();

当应用程序尝试使用 310x310 徽标时出现此错误:

WinRT 信息:无法使用提供的参数初始化辅助磁贴。

所有其他图像工作正常。我正在使用这张图片进行测试:http ://www.usatodayeducate.com/staging/wp-content/uploads/2013/03/310x310-0313-gapyear.jpg

如果我评论包含 310x310 徽标的行,一切正常。知道为什么会这样吗?

4

3 回答 3

2

根据 SecondaryTile 类

public SecondaryTile(string tileId, string displayName, string arguments, Uri square150x150Logo, TileSize desiredSize);

在哪里

desiredSize:要固定的图块的大小。此值必须是 Default(提供 Windows 8 行为)、Square150x150 或 Wide310x150。任何其他 TileSize 值都会导致在运行时引发异常。

在这里,您使用310x310 size for desiredSize了辅助磁贴不可接受的。
请检查您的代码。

于 2014-02-25T10:18:07.037 回答
0

看起来您正在使用 300 dpi 的高 dpi 图像。我正在查看图像,看起来不寻常的独特属性是图像 dpi(高)。

尝试在传统屏幕 96 dpi 中使用相同的图像,您可以尝试使用这个我已经转换为 96 dpi 的图像: 在此处输入图像描述

于 2014-02-25T14:41:03.657 回答
-2

您不能链接到网络资源。它们必须在应用程序中的本地(已部署的应用程序包中的路径。此路径针对应用程序支持的语言和 DPI 平台进行解析。)或在用户设备上(在每个用户的应用程序存储中找到的文件。) .

此文档:http: //msdn.microsoft.com/en-us/library/windows/apps/windows.ui.startscreen.secondarytilevisualelements.square310x310logo.aspx

于 2014-02-25T10:17:52.730 回答