yotiky Tech Blog

とあるエンジニアの備忘録

WPF

MeCab.DotNet にユーザー辞書を追加する

目次 目次 インストール 辞書の作成 実装 参考 関連記事 インストール 本家 MeCab より Windows 用のバイナリパッケージをダウンロードします。 ダウンロードしたインストーラーを実行します。 今回は辞書の文字コードは「SHIFT-JIS」を選択。 辞書の作成 以…

C# で MeCab.DotNet を使って形態素解析

目次 目次 インストール サンプル実装 関連記事 インストール NuGet で「MeCab.DotNet」をインストールします。 MeCab.DotNet は「MeCab」、「NMeCab」を .NET Core に移植したパッケージです。 github.com 以下パッケージサイトから抜粋。 "MeCab" は、日本…

WPF から Application Insights に Telemetry を送信する

目次 目次 Application Insights 非HTTPアプリケーション向け 検証環境 手順 パッケージのインストール 実装 実行結果 Application Insights Application Insights は Azure Monitor の機能であり、開発者や DevOps プロフェッショナル向けの拡張可能なアプ…

WPF - DesignerProperties

DesignerProperties はデザインモードか判定に使われるクラスですが、手元の環境で上手く機能しなくなっていたので簡単に調査した結果です。 目次 目次 検証環境 内容 使い方 動作確認 WPF (.NET Framework) WPF (.NET Core) 検証環境 Visual Studio 2019 (1…

WPF - CommandLocker

Button にバインディングしたコマンドを共通してロックする機構 CommandLocker。 github.com ロックの種類は、Guidをキーとしたシンプルなロックと、ロックする時に渡した値をアンロックする際にも渡す必要があるトリガーロックの2種類です。 トリガーロック…

HoloLens2 で入力方法として QRコード を使う

前回「HoloLens2 でQRコードのスキャンを実装する」では、QRコードスキャンの実装方法を紹介しました。 QRコードのスキャンが使えると、QRコードを介してアプリに文字列を流し込めるようになります。 試しに、入力フィールドの横にQRコードを読み込むボタン…

HoloLens2 でQRコードのスキャンを実装する

目次 目次 検証環境 手順 導入 実装 サンプルプロジェクト 参考 関連記事 検証環境 Unity:2019.4.3f1 VisualStudio:2019 MRTK 2.5 (設定、UI、操作などに) UniRx 手順 導入 NuGetForUnity のパッケージをDLして Import する NuGet > Manage NuGet Packag…

WPF - MahApps の覚書

目次 目次 前提 WindowCommands ListBox HamburgerMenu 参考 ボタンとして使用する ToolTipを表示する 前提 MahApps.Metro MahApps.Metro.IconPacks App.xaml でリソースを読み込む。 <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> </resourcedictionary.mergeddictionaries></resourcedictionary></application.resources>

ZXing を使ってQRコードを動的に生成して表示する

ZXing は "zebra crossing" の略らしく、ゼブラクロッシングと読むのが正解っぽい。 検証環境 導入 実装 パラメータ 実行 検証環境 WPF .NET Core 3.0 ZXing.NET 0.16.6 導入 nuget で ZXing.NET をインストールします。 System.Drawing.Common も使うので入…

WPF - FluentWPF の使い方

Fluent Design System に関しては次のページの通り。 docs.microsoft.com FluentWPF の基本的な使い方はREADMEにあります。 github.com 作者のブログも少し古めですが参考になります。 sourcechord.hatenablog.com ただし、現状 MahApps.Metro との併用は Me…

WPF - XAML ほかの覚書

目次 目次 リソースを使う 外部リソースを定義する プリミティブ型の利用 Grid の RowDefinitions / ColumnDefinitions の長さを定義する スタイル 使い方 継承 一般 RelativeSource Parameter などに struct を渡す ショートカットキー Loadedイベントでコ…

Unity - Unityを外部プロセスとしてWPFでホストする(Unity as a Library)(2)

前回の記事で WPF で Unity をホストする実装例を紹介しました。 参考にさせて頂いた記事では、続きに Unity の起動画面がWindow全体に表示されてしまう問題を対処しています。 yotiky.hatenablog.com 手元でも同じように全体に表示されたため、続きのコード…

.NET - 子プロセスを確実に終了させる

実装例 こちらやここのコメント欄などが参考になりそうです。今回はQiitaの記事のコードを使わせて頂きました。 public class JobObject : IDisposable { public static JobObject CreateAsKillOnJobClose() { var job = new JobObject(); var jobInfo = new…

WPF - アプリ終了時に非同期処理を実行して終了する

環境 .NET Core 3.1 実装例 終了のイベントをフックして、非同期な後処理を呼びつつイベント自体はキャンセルし、後処理が終わったらそのままアプリが終了するようにします。 public MainWindow() { Closing += MainWindow_Closing; } private bool isCalled…

Unity - Unityを外部プロセスとしてWPFでホストする(Unity as a Library)

Unity 2019.3以降、「Unity as a Library」というAndroidやiOSのネイティブアプリに、Unityで作成したアプリをライブラリとして埋め込む機能が提供されています。 この中にはWindowsアプリケーションも含まれています。Windows では以下の3つの方法が紹介さ…

.NET - WebGLをWPFでホストする(WebView2 で Unity as a Library)

Unity 2019.3以降、「Unity as a Library」というAndroidやiOSのネイティブアプリに、Unityで作成したアプリをライブラリとして埋め込む機能が提供されています。 unity.com WebGL 自体はこの中に含まれないのですが、検証ついでに Unity で生成した WebGL …

.NET - NamedPipe(名前付きパイプ)を使ったプロセス間通信

今回は名前付きパイプの実装例です。 サンプルは1つ目の Console アプリで入力した文字列を、2つ目の Console アプリ、WPF アプリ、Unity でそれぞれ読み取って表示するものになります。 パイプはサーバー側で同じパイプ名を共有するサーバーインスタンスの…

.NET - MemoryMappedFile を使ったプロセス間通信

別々のプロセスで起動したアプリケーションやライブラリで相互に通信する方法のサンプルコードです。今回は共有メモリ、MemoryMappedFile を使います。 .NET Framework 4.0 以降に導入された技術のようです。 今回のサンプルは1つ目の Console アプリで入力…

Unityと協調するためのアーキテクチャ『MVP4U』

これまでいくつかの記事でアーキテクチャのデザインパターンを見てきた。Unity独自の事情なども徐々に咀嚼し、ある程度動きそうなアーキテクチャを開発チームにアウトプットできたので、ここらで共有しておこうと思う。まだ適用し始めた段階なので、今後いく…