NLogでログをとる

C#

やりたいこと 以前、自前でログを取るためのクラスを作ったりしたが、マルチスレッドの場合に同時に書き込んだりすると落ちるなど、問題があった。 頑張って自分で作るのもいいが、世の中には便利なログ取りライブラリがある様子。 最近NLogというのに触れる…

1つのexeから、同じnugetパッケージの複数バージョンを切り替えて使いたい

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと nugetで参照するあるパッケージ(ライブラリ)の異なるバージョンを、一つのexeから切り替えてつかいたい。 基本、一つのexeでnugetで参照できる1つのパッケージの複数のバージョンを同時に…

名前付きパイプでプロセス間の双方向通信を行う(改良版)

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の記事で勉強した、プロセス間通信につかう「パイプ」のためのサンプルプログラムを改良したい。 (というか、元のサンプルプログラムがいろいろまずそうだったので直したい) 改良版の…

WinUI3のコントロールの標準style(generic.xaml)のありか

もくじ https://tera1707.com/entry/2022/02/06/144447/WinUI3 やりたいこと WinUI3で「標準のコントロールのstyleやテンプレート」を取ってくるために、以前、下記の記事で、generic.xamlを取ってくればいいということを調べた。 コントロールのマウスオー…

WinUI3で最小ウインドウサイズを指定する

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと WPFとかでよくやっていた、ウインドウサイズをこれ以上小さくできないようにしたい、ということをWinUI3でもやりたい。 が、ぱっと調べただけでは、WinUI3の標準のやり方でそうい…

自分がよく使いそうなPoweShellコマンド早見表

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと WinUI3のアプリを作っているが、よく実装の実験のためにパッケージするタイプのWinUI3アプリを新規で作ってお試し実装することがあるのだが、それをやると、自分のPCに、実験用アプリがた…

WinUI3アプリのウインドウの大きさや位置が変化したイベントと、変化したときの大きさや位置の値を取りたい

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと WInUI3アプリのウインドウの、大きさや位置が変化したイベントと、変化したときの大きさや位置の値を取りたい。 前提 VisualStudio2022 Community 17.3.0 WinUI3 と パッケージプ…

WinUI3アプリのウインドウのタイトルバーを消す

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと WInUI3アプリのウインドウの、タイトルバーをなくしたい。 前提 VisualStudio2022 Community 17.3.0 WinUI3 と パッケージプロジェクト Windows App SDK 1.1.3 やりかた Overlappe…

[WinUI3] テキスト中に出てくるリンクをつくりたい1(没)

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 下の図のような感じで、文章中のリンク表示をつくりたい。 そこだけリンクだと分かるように色を変えて、かつ下線も引いた見た目にしたい。 ※後日追記 もっと簡単で良いやり方があった。下…

戻り値のあるタスクの完了をTask.WhenAll()で待って例外が起きたときに、正常終了したTaskだけでも値を取り出す

もくじ https://tera1707.com/entry/2022/02/06/144447#Task やりたいこと 以前の記事で、Taskの中で例外が起きた時のキャッチの仕方を学んだが、今回、Task.WhenAll()で複数の戻り値のあるタスクの完了を待ったときに、そのタスクのどれかで例外があったら…

COMのC++コードをC#に直す

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 仕事で、COMを扱う機会があった。 そこで、C++で書かれたCOMを使うコードを、C#に書き直す、ということをした。 その時のメモ。 やったこと とにかく、「COM windows C#」とかで検索して…

ファイルやリンクをダブルクリックしたときと同じ動きをC#でさせる

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと エクスプローラーでファイル名をダブルクリックしたときと同じように、拡張子に関連付けられたアプリでそのファイルを開くような動作を、C#のコードからしたい。 やり方 Processクラスと…

いったんWindows App SDKをアンインストールしたい

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと Windows App SDK をいっぺんアンインストールしたい。 やりかた 下記のようにすれば、アンインストールできた。 PowerShellを開いて、 get-appxpackage *appruntime* | Select Pac…

非パッケージのWinUI3アプリを、WindowsAppSDKが入っていないPCでも動くようにする

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 先日、WinUI3製のアクリル見た目を調整するアプリを作った。 tera1707.com これを、まっさらインストールしたてのWindows11で動かすと、下記のような、WindowsAppRuntimeが足りな…

WinUI3の背景アクリルの色調整をする

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと WinUI3のアクリルを使って、半透明のぼかしの入ったウインドウを作りたいのだが、半透明に少し色を入れた、例えば黄色がかったアクリル板のような色にしたいときに、どこの値をどうしたら…

WinUI3アプリを高DPI(>100%)でappWindow.MoveAndResize()する

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと WinUI3アプリのウインドウサイズを変更するには、AppWindowクラスを使えばよいことが分かった。 ⇒こちら また、WinUI3アプリで、ディスプレイの倍率(DPI)が100%でないときに、とり…

ManualResetEvent / AutoResetEvent で処理を待たせる

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと あるスレッドで行っている処理を、別のスレッドの処理が終わるまで待ってほしい、みたいなケースがあった。なにかよいやり方ないか、調べてみる。 やり方 ManualResetEventもしくはAutoRe…

ライト/ダーク/ハイコントラストの変化時イベントはWinUI3で取れるか?

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと Windowsの設定上で、ライト/ダークモードとハイコントラストのONOFFが変化したときに、なにか処理をしたい。 前提 Windows10 Home 21H1 19043.1706 VisualStudio2022 Community 17…

NUnitでUnitTestする

もくじ https://tera1707.com/entry/2022/02/06/144447#UnitTest やりたいこと WinUI3のexeの中のpublicなものをUnitTestしようと思うと、いつも使っていたMsTest(vstest.console.exe)でテスト実行がどうしてもできなかった。 で、代替を探していたら、NUnit…

.NET MAUIを使ってAndroidで動く天気予報アプリをつくる

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 最近、家でPCを触るときは、いつもウェザーニューズ社の天気予報のyoutubeのライブ動画をずっと見ている。 動画の中で、きれいなお姉さんがお天気を解説してくれているのだが、その動画が…

UnitTestでDependencyInjectionするときの、登録と取り出しの仕方

もくじ https://tera1707.com/entry/2022/02/06/144447#UnitTest やりたいこと 以前の記事で、ServiceCollectionとIocを使って依存objectの登録と取り出しができることが分かった。 しかし、登録は、プログラムの初めの部分で登録したらよいのだろう、という…

UnitTestでDependencyInjectionを利用するときの部品どり

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の記事で、DIするときの勉強をして、ごちゃごちゃいろいろ書いたので、ササっとコピペして使えるように部品どりコードを置いておきたい。 前提 Windows10 Home 21H1 19043.1706 Visua…

同じスレッドの別ウインドウを開く

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと WinUI3は、別ウインドウを開けない?みたいな話を聞いていたが、最近のWinUI3では開けるらしい。 WinUI3 Galleryのサンプルを見て、試してみる。 やりかた WinUI3 Galleryのサンプ…

コードからバインディングを設定する

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 普段はxamlに書いたコントロールのプロパティに、<TextBlock Text="{x:Bind ViewModel.MyString, Mode=OneWay}"/>のような感じでバインディングを記述するが、コードの中からバインディングがしたくなった。 どうやればいいか?調べたい。 前提 </textblock>…

複数のTaskの終了待ち中にTaskの中で例外が起きたら、いつどこでアプリが落ちるのか

C#

Task関連記事 https://tera1707.com/entry/2022/02/06/144447#Task やりたいこと 以前、「Taskの中で例外が起きた時のキャッチの仕方」で、Taskの中で例外があったときにどうcatchしたらいいかを調べた。 その時は、動き出した直後に例外を起こすようなTask…

generic.xamlにないデフォルトテンプレートのありか(RadioMenuFlyoutItemの場合)

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと あるとき、フライアウトの中にあるラジオボタンの、このマルの部分の形を変えたいなと思った。 ※フライアウトの中身をラジオボタンにしたかったので、<RadioMenuFlyoutItem>を使っている。 で、こちらの</radiomenuflyoutitem>…

ResourceDictionaryから他のResourceDictionaryのリソースを使うとき

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 知ってる人ならあたりまえやんといわれそうだが、 あるリソースディクショナリから、別のリソースディクショナリにあるブラシを使おうとしたときに、 リソースが見つかりませんと…

ワーカースレッドのコードに、UI部品を更新するコードを書く

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 画面のスレッドでない処理に、画面の表示更新を行うようなコードを書くと、下記のようなエラーが起きてしまう。 エラーが起きないようにしたい。 やったこと Microsoft.UI.Dispatc…

よく知られたフォルダパスの取り方

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 今ログインしているユーザーのデスクトップとか、ユーザー共通のドキュメントフォルダとかを、パス文字列直打ちではない方法で取得したい。 やったこと WinUI3アプリでは、下記のようにす…

左クリックでFlyoutを表示できるToggleボタンを作る その2

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 以前の記事で、ToggleButtonでフライアウトが表示できるようにした。 (ToggleButtonでは、左クリックでフライアウトが表示できなかったので、表示できるようにした) が、その時の…