2016-10-11 71 views
0

我試圖從一個非常簡單的方式從WPF中的URL加載圖像,但它不工作。任何幫助?代碼如下:在運行時從WPF加載圖像在WPF

主要XAML

<Window x:Class="WpfApplication1.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:WpfApplication1" 
     mc:Ignorable="d" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="279*"></RowDefinition> 
      <RowDefinition Height="41*">     
      </RowDefinition> 
     </Grid.RowDefinitions> 
     <Image x:Name="image1" Grid.Row="0"></Image> 
     <TextBox Grid.Row="1" Margin="0,0,10,0"></TextBox> 

    </Grid> 
</Window> 

代碼隱藏

public partial class MainWindow : Window 
    { 
     public MainWindow() 
     { 

      InitializeComponent(); 

      var bi = new BitmapImage(); 
      bi.BeginInit(); 
      bi.UriSource = new Uri("http://www.clipartkid.com/images/817/pic-of-german-flag-clipart-best-VkuN37-clipart.jpeg"); 
      bi.EndInit(); 

      //var img = new Image(); 
      image1.Source = bi; 
     } 
    } 
+0

該代碼是可以的,併爲我工作。你也許可以檢查你的防火牆設置。請注意,您不需要調用BeginInit和EndInit。 'image1.Source = new BitmapImage(new Uri(...))'也可以。 – Clemens

+0

同意它也適用於我:) – GetFuzzy

+0

只是一個領導。不是一個好主意。什麼人不在線或連接速度緩慢?爲什麼要將延遲添加到應用程序中? – SledgeHammer

回答

0

滑稽哉!現在在我的其他筆記本電腦上正常工作。必須是防火牆設置的東西。而且,現在我已經做得更簡單了。將XAML中的圖像源綁定到我在ViewModel類中設置的字符串屬性。

<Image x:Name="image1" Source ="{Binding MyPic}" Grid.Row="0"></Image> 

class MyViewModel 
    { 
     public string MyPic { 
      get { return @"http://www.clipartkid.com/images/817/pic-of-german-flag-clipart-best-VkuN37-clipart.jpeg"; } 
     } 
    } 

感謝您的答覆,併爲混亂抱歉。

-Ron