こんにちは、私は砂漠の果ての狼です。
今日はWPFハイブリッドBlazor開発を試してみて、良い感じ、テスト手順を簡単に共有します:WPFハイブリッドBlazor開発の簡単な対話プログラム。
テクノロジースタックの利用:
WPF+Blazorプログラムの構築
学习WPF + Blazor混合开发的Hello World最好的地方是微软文档:
https://learn.microsoft.com/zh-cn/aspnet/core/blazor/hybrid/tutorials/wpf?view=aspnetcore-7.0
効果は
UI使用了Masa Blazor,效果个人感觉不错,如果用WPF实现,要麻烦不少,以下是几个效果截图:
** ユーザー一覧ウィンドウ **
使用了Masa Blazor的列表组件,代码几乎是直接Copy过来的,参考链接Masa Blazor列表:

** チャット·ウィンドウ **
这个简单,左侧是一个列表,同上面的用户列表类似,只是去掉了上方蓝色的MToolbar和用户的详细描述信息,右侧则是多行文本框显示聊天记录、单行文本框输入即时聊天信息、一个发送按钮(简单描述,不贴代码,后面有仓库链接)。

** ウィンドウを開く **
列表的点击事件,使用IEventAggregator发送打开子窗体事件 OpenUserDialogEvent,事件订阅方法执行弹出子窗体操作:

** メッセージの送信 **
发送消息按钮点击,使用IEventAggregator 发送发送消息事件SendMessageEvent,事件订阅方法接收消息,并追加到各自历史聊天多行文本框展示:

ソースコードソース
GitHub:https://github.com/dotnet9/WPFBlazorChat
効果は大丈夫ですが、コードは説明されていません、見て実行することに興味があります、現在は再最適化する時間がいくつかあります。
カスタムフォームまたはWPFモードで実装されます。
フォームは透過的で、Borderマウスはイベントを押してフォームドラッグを実現し、右上隅のフォームを閉じるボタンはフォームを閉じ、後でもう一度試してみてもRazorを使用してください。
Prism.DryIocとISServiceCollection 2つのIocコンテナがオブジェクトを重複登録する
本以为搞混合开发挺简单的,实际做才会遇到问题,如果要实现模块化,两种容器可能会处理类似的对象依赖注入,比如
IEventAggregator在Prism中是默认注入了,如果Razor中使用还要注入到IServiceCollection中。
点,