2011-03-09 167 views
8

我在做什麼是我會有一個datagridview,當我選擇一行,並單擊顯示按鈕,我想顯示圖像以及一些信息,我寫了下面的代碼這是什麼意思,這個Urikind.relative

public partial class WpfWindow : Window 
{ 
    private UCPersons _ucPersons; 

    public WpfWindow() 
    { 
     InitializeComponent(); 

     // Create WinForms Usercontrol and 
     // add it to the WindowsFormsHost 
     _ucPersons = new UCPersons(); 
     winFormHost.Child = _ucPersons; 

     List<Person> persons = CreateSamplePersons(); 
     _ucPersons.SetData(persons); 


    } 

    private List<Person> CreateSamplePersons() 
    { 
     List<Person> persons = new List<Person>(); 
     persons.Add(Person.Create("Dorababu", "Madhuranagar", "Hyd", 
      DateTime.Now.AddYears(-34), "1")); 

     persons.Add(Person.Create("Krish", "Sat", "RJY", 
      DateTime.Now.AddYears(-64), "2")); 


     return persons; 
    } 

    private void btnDisplayDetails_Click(object sender, RoutedEventArgs e) 
    { 
     Person person = _ucPersons.GetSelectedPerson(); 
     if (person != null) 
     { 
      lblName.Content = person.Name; 
      lblAge.Content = person.BirthDay.ToShortDateString(); 
      Uri uri = new Uri("m_" + person.ImageRef + ".jpg", 
       UriKind.Relative); 
      imgPerson.Source = BitmapFrame.Create(uri); 
     } 
    } 
} 

但是,如果我複製並粘貼我的圖像出斌的相同是行不通的。

所以我想知道這個UriKInd

+1

我們需要更多的背景 - 你在做什麼*與這個Uri? –

+0

我使用Uri創建確切名稱的參考 – Dotnet

+0

「確切名稱」是什麼意思?這聽起來像是相對URI將被解析爲相對於你的bin目錄...如果你使用完全相同的代碼,但圖像不在bin目錄中,你期望它被發現嗎? –

回答

12

相對一些事情,而不是絕對的。 「chicken/pot/pie.jpg」將是相對的,因爲它是相對於當前目錄的。而像「C:/images/food/chicken/pot/pie.jpg」這樣的東西將是絕對,因爲它是......錯誤......相對於驅動器的

以這種方式初始化Uri的唯一真正的方法是,當uri格式不正確時避免(或導致)異常;當Uri沒有預先確定時有用。

MSDN Reference

相對和絕對URI對它們的格式不同的限制。例如,相對URI不需要方案或權限。您在uriKind中指定的值必須與在uriString中傳遞的URI類型相匹配。但是,如果指定RelativeOrAbsolute,則URI字符串可以是相對或絕對的。

10

這意味着它是一個相對URI - 但我們不知道它是什麼關係,沒有你提供更多的信息。

作爲一個例子,這裏的URI是相對的:

<img src="person.jpg" /> 

...等是這樣的,雖然它在某些方面比前一個「少」相對的,因爲它僅僅依賴於現有的主機/後/方案,而不是當前的URI路徑:

<img src="/images/person.jpg" /> 

這是絕對的,但 - 它包含了所有需要的信息,沒有任何其他背景:

<img src="http://microsoft.com/images/person.jpg" /> 

UriKind documentation

絕對URI由一個完整的參考資源(例如:http://www.contoso.com/index.html),其特徵在於,同時相對URI取決於先前定義的基URI(例如:/index.html )。

雖然沒有更多的信息,但很難說出什麼問題。