2016-03-31 2 views
1

Я пытаюсь поместить URL-адрес источника изображения в XML моего шаблона LiveTyle, но некоторые URL-адреса не работают должным образом. Я тестировал Visualizer App Notes Visualizer от Microsoft и не работал, однако поместил ссылку в браузере, чтобы изображение было возвращено. Любая идея, в чем проблема?Live Tile - UWP (Windows 10) - Url в исходном изображении не работает

Ссылка не работает в шаблоне:

Encode: HTTP% 3A% 2F% 2Fproxycache.app.iptv.telecom.pt% 3A8080% 2FMeoHandler% 2FImageProxy.ashx% 3Fwidth% 3D200% 26url% 3D1% 2F5% 2F55046d06-98e0-4aa3-be7d-f6996152b8ad_c_anatomia-16x9.jpg

Декодирование:http://myimages.com/today/hello?width=200&url=9_c_xpto-16x9.jpg

как не работает :(

шаблон Extract:

string localImageURL = "ms-appx:///Assets/MyImage70x70.png"; 

XmlDocument _myXML = new XmlDocument(); 

string PeekSlide= 
         @"<tile> 
         <visual> 
         <binding template=""TileMedium"" branding=""name""> 
         <image src=""{0}"" placement=""peek"" hint-overlay=""20""/> 
         <image src=""{1}"" placement=""background""/> 
         </binding> 
         </binding> 
         </visual> 
         </tile>"; 

    var _myTile = string.Format(PeekSlide, localImageURL, myWebUrl); 
    _myXML.LoadXml(_myTile); 

Заранее спасибо!

ответ

1

Это потому, что ImageUrl содержит &, который имеет Specail значение в XML. Поэтому XML не может анализировать ваш URL-адрес изображения. Заменить & на &amp; вместо. Подробности refrence Entity References часть. После замены ваше изображение должно быть

<image src="http://myimages.com/today/hello?width=200&amp;url=9_c_xpto-16x9.jpg"/> 
+0

Thanks @Sunteen. Работайте отлично после изменения «&» до «&». Один вопрос: В C# у меня есть System.Security.SecurityElement.Escape (url), но в моем BackgroundTask я не получаю доступ к этому. Я стараюсь: url = url.Replace ("&", "&") .Replace ("<", "<") .Replace (">", ">") .Replace ("\" ", «"„) .Надеть (“ '», "'");. , но этот путь очень очень скучный есть способ сделать это с помощью собственных методов, как первый я пишу Спасибо – fipcurren88

+0

Try WebUtility.UrlEncode (? https://msdn.microsoft.com/en-us/library/system.net.webutility.urlencode.aspx) –

+0

@ fipcurren88, похоже, для этого не существует API. Хотя это и есть, основная логика должна быть заменена. хороший способ, я думаю, но оберните его в метод и вызовите метод каждый раз, когда вы хотите использовать. –

-1

Содержимое поля '_myTile' будет XML с пути к изображению на активах, а не из Интернета.

Почему вы не попробовать это:

string localImageURL = "http://proxycache.app.iptv.telecom.pt:8080/MeoHandler/ImageProxy.ashx?width=200&url=1/5/55046d06-98e0-4aa3-be7d-f6996152b8ad_c_anatomia-16x9.jpg"; 

XmlDocument _myXML = new XmlDocument(); 

string PeekSlide= 
         @"<tile> 
         <visual> 
         <binding template=""TileMedium"" branding=""name""> 
         <image src=""{0}"" placement=""peek"" hint-overlay=""20""/> 
         <image src=""{1}"" placement=""background""/> 
         </binding> 
         </binding> 
         </visual> 
         </tile>"; 

var _myTile = string.Format(PeekSlide, localImageURL); 
_myXML.LoadXml(_myTile); 

HTH,

Томас

Смежные вопросы