我正在將Windows Forms VB項目轉換爲WPF(日記程序)。 在Windows窗體版本中,我在圖片框中顯示圖像,並且可以傳遞完整路徑或相對於My.Computer.Filesystem.CurrentDirectory的路徑 - 圖片框可以解決這個問題。WPF - 相對於當前目錄的URI?
在新的WPF版本中,我想這樣做。然而,這僅適用於絕對,而不是相對路徑:
Dim TheBitmap As New BitmapImage
TheBitmap.BeginInit()
TheBitmap.UriSource = New Uri(TheURL, UriKind.RelativeOrAbsolute)
TheBitmap.EndInit()
TheImage.Source = TheBitmap
只是爲了確認,圖像不資源,他們不是在設計時可用,所以我不能將它們複製到解決方案,我不想在可執行文件的目錄中找到它們(如果沒有它,我想UAC不會讓它像管理員那樣運行)
我在這裏和其他地方讀到的關於WPF URI的一切似乎都表明它們只能相對於可執行目錄或工作目錄,它似乎只能在設計時在我的項目 - >調試頁面中設置 - 而不是我想要的。
我可以讓WPF考慮一個相對於當前目錄的URI,還是我必須爲它編寫我自己的測試?
非常感謝
尼克
編輯
順便說一句,我在此期間使用的測試:
If IO.File.Exists(DatabaseLocation & "\" & TheURL) Then
'must be a relative url
TheBitmap.UriSource = New Uri(DatabaseLocation & "\" & TheURL,UriKind.Absolute)
Else
'must be an absolute url
TheBitmap.UriSource = New Uri(TheURL, UriKind.Absolute)
End If
我可以很容易地轉換一個相對uri - 但如果我喂絕對的話就不會工作。 Picturebox.LoadAsync()可以使用。我希望有一種方法可以在WPF中自動處理。同時我寫了自己的測試。 – nicke
用可能有幫助的東西更新了我的答案。 – Xavier
謝謝Xavier。我實際上使用VB,但我可以弄清楚你的代碼是幹什麼的。我認爲這基本上是我現在使用的更強大的版本。如果WPF可以以某種方式在本地執行此操作,那將會很不錯,但我知道WPF與更好的組織項目相比具有更大的靈活性和潛力,與Win Forms相比,WPF也缺少很多東西! – nicke