2016-05-13 15 views
5

Tôi đang phát triển ứng dụng UWP Windows 10 đầu tiên của mình. Tôi có một hình ảnh. Đây là mã XAML của nó:Làm cách nào để thay đổi image.source bằng C# khi tạo ứng dụng UWP?

<Image x:Name="image" 
       HorizontalAlignment="Left" 
       Height="50" 
       Margin="280,0,0,25" 
       VerticalAlignment="Bottom" 
       Width="50" 
       Source="Assets/Five.png"/> 

Và im cố gắng thay đổi image.source với mã này:

 private void slider_ValueChanged(object sender, RangeBaseValueChangedEventArgs e) 
    { 
     BitmapImage One = new BitmapImage(new Uri(@"Assets/One.png")); 
     BitmapImage Two = new BitmapImage(new Uri(@"Assets/Two.png")); 
     BitmapImage Three = new BitmapImage(new Uri(@"Assets/Three.png")); 
     BitmapImage Four = new BitmapImage(new Uri(@"Assets/Four.png")); 
     BitmapImage Five = new BitmapImage(new Uri(@"Assets/Five.png")); 

     if (slider.Value == 1) 
     { 
      image.Source = One; 
     } 
     else if (slider.Value == 2) 
     { 
      image.Source = Two; 
     } 
     else if (slider.Value == 3) 
     { 
      image.Source = Three; 
     } 
     else if (slider.Value == 4) 
     { 
      image.Source = Four; 
     } 
     else if (slider.Value == 5) 
     { 
      image.Source = Five; 
     } 
    } 

Nhưng khi tôi biên dịch mã tôi nhận được lỗi này trỏ đến các khai báo biến:

UriFormatException là unhandled bởi mã người dùng

Trả lời

0

Bạn cần chỉ định tham số UriKind bổ sung cho từng đối tượng URI của bạn, để chúng được định nghĩa là Tương đối, ví dụ:

new Uri("Assets/One.png", UriKind.Relative) 
+0

Xin chào, Cảm ơn sự giúp đỡ. Điều này tuy nhiên đã gây ra ArgumentsException đã được unhandled bởi mã người dùng. Bất kỳ ý tưởng? Cảm ơn –

+1

Hãy xem câu hỏi tương tự này: [link] (http://stackoverflow.com/questions/32314799/uwp-image-uri-in-application-folder) – RobertoB

+0

Xin chào, Không thực sự được sử dụng nhiều. Dù sao cũng cảm ơn bạn. –

3

của Windows Runtime API không hỗ trợ URI kiểu UriKind.Relative, vì vậy bạn thường sử dụng chữ ký mà suy luận các UriKind và chắc chắn rằng bạn đã chỉ định một URI tuyệt đối có giá trị bao gồm cả chương trình và thẩm quyền.

Để truy cập các file được lưu trữ bên trong gói ứng dụng, nhưng từ mã nơi không có thẩm quyền gốc suy ra, chỉ rõ ms-phụ lục: chương trình như sau:

BitmapImage One = new BitmapImage(new Uri("ms-appx:///Assets/One.png")); 

Mọi chi tiết, xin vui lòng xem How to load file resources (XAML)URI schemes.

Các vấn đề liên quan