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

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 下の図のような感じで、文章中のリンク表示をつくりたい。 そこだけリンクだと分かるように色を変えて、かつ下線も引いた見た目にしたい。 前提 VisualStudio2022 Community 17.2.6 WinUI…

戻り値のあるタスクの完了を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では、左クリックでフライアウトが表示できなかったので、表示できるようにした) が、その時の…

WinUI3アプリから、別のDLLに置いてあるResourceDictionaryを使う

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと WinUI3アプリから、同じくWinUI3のライブラリのプロジェクトにおいてあるリソースディクショナリの中のリソースを参照できるようにして、リソースを複数プロジェクトで共用したい…

UnitTestでDependencyInjectionを利用する

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 昔から、UnitTestせねば、自動テストせねば、そのためにDI(DependencyInjection)せねば、、、と思い続けてたのに、どんどん後回しになって全然やってなかったので、まずは簡単にDIの練習…

アプリ自身で自分のテーマ(ダーク/ライト)を変更する

WinUI3関連記事 https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 以前、アプリ画面上にあるコントロール類を、テーマ(ダーク/ライト/ハイコントラスト)に沿った色でにするということをした。 tera1707.com 今回は、アプリ自身で、自分の…

WinUI3ではStyle.Triggersがないので代替手段でマウスオーバー時の背景色変更する

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 以前調べた、WPFでStyle.Triggerを使ってマウスオーバー時に背景色を変える方法をWinUI3でもやろうとすると、Style.Triggerがなくなって使えなくなっていた。 WinUI3っで、お手軽…

プライマリスクリーンのサイズの取り方(SystemParameters/Screen)

目次 https://tera1707.com/entry/2022/02/06/144447 やりたいこと PCに接続しているディスプレイの大きさ、特にプライマリディスプレイ(1番のディスプレイ)の大きさを知りたい。 で、以前調べたWPFのAPIを使ったやり方以外にも、WinFormsのAPIを使ったやり…

WinUI3アプリのウインドウを、dpiの大きなモニタに移動すると、中のUI部品は大きくなるのに、ウインドウの大きさはそのままになる

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと UWPやWPFのウインドウをdpi=100%のモニターから125%のモニターに移動すると、ウインドウが25%分大きくなり、中の部品も25%分大きくなって、結果いい感じに見えるのだが、WinUI3で…

WinUI3のウインドウのタイトルバーを自由にカスタムしたい

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 以前書いた「WinUI3のウインドウの最大化ボタン無効化や、ウインドウサイズ変更をしたい」で、ウインドウについている最大化ボタン、最小化ボタンの無効化をどうやるか調べたが、…

パッケージしたアプリの「ローカルフォルダ」にアプリの設定データを保存する

もくじ https://tera1707.com/entry/2022/02/06/144447#WinUI3 やりたいこと 今までWPFアプリを主に触っていたので、UWPで「ユーザーごとに、アプリの設定を保存しておきたい」というときにどうしたらいいか全然わからなかった。 きくところによると、UWPは…