我正在嘗試設置C#/ WPF中按鈕背景的ImageSource。我以編程方式執行此操作,因爲我正在爲某個可選目錄中的每個(圖像)文件顯示一個按鈕,因此事先不知道按鈕的數量。將ImageSource設置爲包含%字符的本地文件路徑
雖然與迭代在我試圖實例化一個BitmapImage的(當前指數)的diectory每個圖像文件:
private string[] _pathsInCurrentFolder;
public ImageSource[] ImagesInCurrentFolder { get; private set; }
//...
ImagesInCurrentFolder[i] = new BitmapImage(new Uri(_pathsInCurrentFolder[i]));
這工作對大多數文件路徑。但是,我碰到一些包含%字符的文件,後面是(至少)兩個數字。有趣的是,在大多數情況下,這似乎不成問題,但是一個文件具有「%7E」作爲子字符串。 URI構造函數將其轉換爲「〜」(As 7E爲〜的Ascii),系統在嘗試訪問文件路徑時拋出FileNotFoundException。
所以我的問題是:我如何實例化一個ImageSource對象指向包含子字符串「%7E」的本地圖像文件或可能還沒有意識到的其他中斷子串。我不堅持使用URI的解決方案,任何工作都很好。
我正在運行Win7 Prof 64bit,VS 2015與.NET 4.6.1順便說一句。
我已經嘗試過(沒有成功):
- 更換 「%」 與
Uri.HexEscape("%")
,這打破了所有其他文件路徑爲 「%」 出現次數。 - 更改
Uri
構造函數中的UriKind
。無論什麼設置都沒有效果。
在此先感謝!
不客氣。 – Sakura