2014-02-25 2 views
1

Я пытаюсь создать вторичную плитку для приложения Windows 8.1, мне нужна эта плитка, чтобы содержать изображения всех размеров, и все они поступают из Интернета. это мой код:Ошибка создания Square310x310Logo плитки, когда изображение из Интернета

 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, все будет хорошо работать. Любая идея, почему это происходит?

ответ

-2

Вы не можете подключиться к веб-ресурсам. Они должны быть локальными в приложении (путь в развернутом пакете приложений. Этот путь разрешен для языков и плато DPI, поддерживаемых приложением.) Или на пользовательском устройстве (файл, найденный в хранилище приложений для каждого пользователя.).

документации этого: http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.startscreen.secondarytilevisualelements.square310x310logo.aspx

+1

Спасибо за ответ. Я приношу как изображения 310x150, так и 150x150 из Интернета, и закрепленный метод работает нормально, но когда я добавляю изображение 310x310 к плитке, это может привести к сбою приложения. –

2

В соответствии с классом SecondaryTile

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

где

DesiredSize: Размер плитки к штырю. Это значение должно быть по умолчанию: (что обеспечивает поведение Windows 8), Square150x150 или Wide310x150. Любое другое значение TileSize вызывает исключение, которое должно быть выбрано во время выполнения .

Здесь вы использовали 310x310 size for desiredSize, что недопустимо для вторичной плитки.
Проверьте код.

+0

Также читайте ответ Markoo – asitis

+0

Безумный, вы бы сказали @asitis ответ, похоже, что Он прав. – JuanK

+0

Спасибо за ответ, я предполагаю, что я реализую метод загрузки изображений и добавления их в файлы приложений, чтобы они могли использоваться живой плиткой без исключения. –

0

выглядит так, что вы используете изображение с высоким разрешением dpi, 300 dpi. Я просматривал изображение, и уникальный атрибут, выглядящий необычным, - это изображение с разрешением dpi (высокое).

Попробуйте использовать то же изображение в традиционном экране 96 точек на дюйм, вы можете попробовать с этим я conveted до 96 точек на дюйм: enter image description here