Blazor Hybrid 實戰體驗:那些你可能沒預料到的坑
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
文件拖放事件的局限#Blazor Hybrid 的運行環境是 WebView,這導致了在處理文件拖放時出現了一些限制。在傳統桌面應用中(如 WinForms 或 WPF),開發者可以直接捕獲拖放事件,并獲得文件的完整路徑。但在 Blazor 中,拖放事件只能像瀏覽器中一樣處理,意味著我們只能獲得上傳文件的流,而無法獲取文件的實際路徑。 這對于那些需要直接訪問文件路徑的功能(如Clipify中把視頻拖進去處理)帶來了很大的不便。 冗余代碼(不是)#看了項目代碼的同學可能會發現,FormMain.cs里還有處理拖放事件的代碼,不過實際上并沒有生效。
?解決方案目前的解決辦法有限,根據查找到的資料和我自己的探索,有以下幾種:
第3種方法的代碼大概是這樣(未驗證)
社區反饋#同樣的問題我在 Github issues 和 Stack Overflow 之類的平臺也有看到很多人提出,不過看起來微軟并不想解決這些問題。 相關鏈接:
桌面應用體驗差異#Blazor Hybrid 盡管以桌面應用的形式運行,但表現更接近于網頁應用。 瀏覽器的快捷鍵#一個明顯的例子是,在 WebView 中按下 F5 鍵時,頁面會像瀏覽器一樣刷新,這種行為顯然不符合傳統桌面軟件的用戶體驗。 在類似的技術中,如 Electron,也存在類似的局限。但不同的是,Electron 提供了更多對瀏覽器行為的控制手段,可以阻止或重定義這些行為,而 Blazor Hybrid 目前則沒有這些更細粒度的控制能力。 從桌面應用的角度來看,用戶希望獲得一致且原生的操作體驗,因此這些細微的差異可能會影響開發者對 Blazor Hybrid 應用的期望。 窗口大小調整的表現在使用 Blazor Hybrid 時,我還注意到窗口大小調整的流暢度問題。相比起原生的桌面應用,Blazor Hybrid 的表現不盡如人意。當用戶調整窗口大小時,界面偶爾會出現黑邊或畫面撕裂的現象。 這種問題不僅在 Blazor Hybrid 中出現,實際上,在瀏覽器(chrome)和 Electron 應用(QQ)中,我也觀察到類似的問題。 為了更深入地理解這個現象,我還測試了 C++ 原生應用,結果發現原生應用在調整窗口大小時相對來說更流暢,沒有出現黑邊或撕裂的問題。 我猜測造成這種差異的原因可能在于,Blazor Hybrid 和 Electron 依賴 WebView 作為渲染引擎,而 WebView 的渲染機制在處理窗口大小調整時不如原生 UI 渲染引擎高效。 小結#Blazor Hybrid 是一個非常有潛力的技術,它讓 C# 開發者能夠輕松地構建跨平臺桌面應用。 然而,在使用過程中,我發現了一些需要關注的問題,尤其是在拖放事件、桌面應用行為一致性和窗口大小調整表現上。 轉自https://www.cnblogs.com/deali/p/18458357 該文章在 2025/1/17 10:23:25 編輯過 |
關鍵字查詢
相關文章
正在查詢... |