開發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就沒有這個問題,默認就是下圖所示。正確的配置如下圖