Win8學習總結之"給定的 System.Uri 無法轉換為 Windows.Foundation.Uri"問題


     之前有做過WindowsPhone 7的開發,現在開始入手Win8的開發,在對Win8有了一些了解之后,果斷的打算將之前做好的一個小應用移植到Win8,整個過程還是很順利的,但是在從一個頁面向另一個頁面傳送一個路徑字符串,然后通過對Image控件綁定該字符路徑時遇到了這樣的問題,即“給定的 System.Uri 無法轉換為 Windows.Foundation.Uri。如下圖示:

我的源碼是這樣的:

        protected override void OnNavigatedTo(NavigationEventArgs e)

        {

            if (e.Parameter != null)

            {

                Car car = (Car)e.Parameter;

                txtcontent.Text = car.CarContent;

                txtname.Text = car.CarCountry + ":" + car.CarName;

                img.Source = new BitmapImage(new Uri(car.CarImg, UriKind.RelativeOrAbsolute));

            }

        }

報錯的原因是:

    我們只要對高亮部分換成如下的代碼即可:

img.Source = new Windows.UI.Xaml.Media.Imaging.BitmapImage(

             new Uri("ms-appx://" + car.CarImg, UriKind.RelativeOrAbsolute));//備注:如果你的路徑里沒帶斜線如:images/1.jpg,則需要寫成:“ms-appx:///",

如果路徑里有斜線如:/images/1.jpg"則直接寫為:"ms-appx://"+"/iamges/1.jpg";

      兩行代碼的差別之處在於,下面的代碼多了“ms-appx://”這句代碼的意思文件的絕對路徑,同時你會發現我們的UriKind已經換成了RelativeOrAbsolute,。這也就說明這樣的問題,如果我們需要在cs頁對Image控件的Source進行賦值時,需要賦給其絕對路徑,而在xaml頁,只需賦給其相對路徑即可完整顯示圖片。

只是剛開始接觸Win8,還有很多東西要學,只是把自己遇到的問題,總結下,和大家分享自己解決辦法,希望能對大家有所幫助。如有說的不對的地方,還請大家多多指教!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM