1. 程式人生 > 其它 >.NetCore WPF 指定一個相對路徑的圖片,報錯“找不到資源”

.NetCore WPF 指定一個相對路徑的圖片,報錯“找不到資源”

.NetCore WPF 指定一個相對路徑的圖片,報錯“找不到資源”

開發wpf也有一段時間了,今天試試用.net core開發wpf,看下能否方便的將.net wpf移植到.net core。結果發現n多問題...

像dll引用,.net core已經沒有從程式集裡引用這一項了。還有部分程式碼不是.net standard裡的,還得新增.net framework框架,需要在工程檔案裡手動修改。一通百度總算是解決了。

現在記錄下這個資源圖片找不到的問題。

程式碼很簡單,xaml程式碼如下:

 <Button Content="OK"  Width="100" Height="50">
                <Button.Background>
                    <ImageBrush ImageSource="/WpfApp1;component/Images/test.png"/>
                </Button.Background>
            </Button>

然後編譯不報錯,圖片也能預覽到,但是執行就報錯:

System.Windows.Markup.XamlParseException:““在“System.Windows.Baml2006.TypeConverterMarkupExtension”上提供值時引發了異常。”,行號為“14”,行位置為“22”。”

內部異常:

IOException: 找不到資源“images/test.png”。

解決辦法:選擇圖片,右鍵屬性=》生成操作=》選擇“資源”,然後選擇複製到輸出目錄=》選擇不復制。

注意:選擇“資源”後,到這裡還沒完,當修改了“生成操作屬性”時,“複製到輸出目錄”屬性時會被重置為null,需要再改回來。起初懷疑是圖片屬性沒設定對,結果只改了生成操作屬性,沒注意到複製到輸出目錄被重置為null,然後各種嘗試。。。

.net core wpf新增圖片到專案時,預設生成操作屬性都是無,需要每個資源都進行修改,才能指定相對路徑!.net framework wpf就沒有這個問題,預設就是下圖所示。正確的配置如下圖

在csproj專案檔案中要刪去下面預設的一段