sh1’s diary

プログラミング、読んだ本、資格試験、ゲームとか私を記録するところ

C#

C# CommunityToolkit.Mvvm 8.2 の確認

ランキング参加中 プログラミング .NET Community Toolkit 8.2! .NET Community Toolkit には何がありますか? (What’s in the .NET Community Toolkit? ) Custom attributes [RelayCommand] 新しい ObservableProperty の変更フック⚗️ MVVM Toolkit の Cod…

C# CommunityToolkit.Mvvm の学習9 collections

ランキング参加中 プログラミング ObservableGroup<TKey, TElement> and ReadOnlyObservableGroup<TKey, TElement> Sample ObservableGroup<TKey, TElement> features ObservableGroupedCollection<TKey, TElement> and ReadOnlyObservableGroupedCollection<TKey, TElement> ObservableGroupedCollection<TKey, TElement> features 参考 Obs…</tkey,></tkey,></tkey,></tkey,></tkey,></tkey,>

C# CommunityToolkit.Mvvm の学習8 IoC

ランキング参加中 プログラミング IoC (Inversion of control) サービスの構成と解決 (Configure and resolve services) コンストラクタの注入 (Constructor injection) Viewmodel は "constructor injection" て、どうなの? (What about viewmodels?) 参考…

C# CommunityToolkit.Mvvm の学習7 Messenger

ランキング参加中プログラミング Messenger どのように機能するか (How it works) 送信 - 送信と受信メッセージ (Sending messages - Sending and receiving messages) Sample リクエストメッセージの使用 (Request messages - Using request messages) Samp…

C# CommunityToolkit.Mvvm の学習6 RelayCommand

ランキング参加中プログラミング RelayCommands どのように機能するか (How it works) ICommand の働き (Working with ICommand) Sample AsyncCommands どのように機能するか (How it works) 非同期コマンドの働き (Working with asynchronous commands) Sam…

C# CommunityToolkit.Mvvm の学習5 ObservableValidator

ランキング参加中プログラミング ObservableValidator どのように機能するか (How it works) 単純な例 Sample カスタム検証のメソッド (Custom validation methods) カスタム検証の属性 (Custom validation attributes) 参考 ObservableValidator Observable…

C# CommunityToolkit.Mvvm の学習4 ObservableObject

ランキング参加中プログラミング どのように機能するか (How it works) 単純な例 サンプル non-observable モデルのラッピング Task の扱い (Handling Task properties) Sample 参考 ObservableObject は、INotifyPropertyChanged と INotifyPropertyChangin…

C# CommunityToolkit.Mvvm の学習3 RelayCommand + INotifyPropertyChanged

ランキング参加中プログラミング RelayCommand 属性 How it works(どのように機能するのか) Command パラメーター 非同期コマンド (Asynchronous commands) コマンドの有効化と無効化 (Enabling and disabling commands) コマンドの同時実行の処理 (Handli…

C# CommunityToolkit.Mvvm の学習2 ObservableProperty

ランキング参加中プログラミング ObservableProperty の属性 ObservableProperty の属性 How it works(どのように機能するのか) Running code upon changes(変化に応じた実行コード) Notifying dependent properties(依存プロパティの通知) Notifying …

C# CommunityToolkit.Mvvm の学習1

ランキング参加中プログラミング MVVM Toolkit のサンプルプログラム Introduction to the MVVM Toolkit で、MVVM Toolkit パッケージはいつ使うべきなの? MVVM Source generators 参考 WinUI3 でも利用できる MVVM として「MVVM Toolkit」の学習をはじめま…

WPF JumpList の使い方について

JumpList 使い方の例 参考 WPF のアプリを作っているときに JumpList を使おうと思ったときに、システムトレイアイコンのメニューとの使い方の違いを再認識しました。その内容をメモ。 JumpList JumpList は Windows 7 から追加された windows の機能です。 …

WPF ToggleButton 注意点の整理

ToggleButton のデザイン ToggleButton のイベント コード上からの注意点 余談:添付プロパティで対応できるか? 参考 タイトルのとおり、WPF のコントール ToggleButton の使い方についてのメモです。ToggleButton は、通常のボタンに加えて IsChecked プロ…

C# TimeProvider の利用について (.NET8)

この記事は「Qiita - C# Advent Calendar 2023」に参加しています。 C# には、時間を表現するクラスに DateTime と DateTimeOffset があります。.NET 8 から TimeProvider クラスが新しく用意されました。 TimeProvider クラスは .NET8 の新機能のひとつ「時…

C# なるべく高精度な Timer を使う

C# の Timer 事情 補足:自分で sleep を利用したタイマーを作る場合 Windows マルチメディアのタイマー実装の注意 実装するときの P/Invoke 太古の情報 サンプル 参考 Windows において、高精度なタイマーを実装するのは 2000 年以前から難しい(困難)こと…

WinUI3 App.xaml (App.xaml.cs) をカスタマイズする

ランキング参加中プログラミング ファイル構成(App.xaml) AppExBase クラスの実装 AppEx の実装 App.xaml.cs の実装 参考 App.xaml は全体で使うリソースを宣言するファイルで、App.xaml.cs は(主に)アプリケーションのエントリーポイント。 WPF でも Wi…

Win UI3 の入門(1)hello world

Windows App SDK (WinUI 3) とは Win UI の補足 Hello World 環境構築とプロジェクトの作成 プロジェクトの初期構成ファイル デバッグの実行テスト ウィンドウ画面の作成 参考 この記事は、Windows App SDK の使い方について学んだ基本的な内容をアウトプッ…

Visual Studio Extension 拡張機能 (VSIX) を作成する

Visual Studio 拡張機能 拡張機能の開発デバッグ プロジェクトの構成について コマンドを追加する コマンドのローカライズ 公開する GitHub 参考 Visual Studio の拡張機能を作成したときの内容をメモします。 今回、拡張機能を作成しようと思ったきっかけは…

WPF UI(UI ライブラリ)の使い方(2)Snackbar 編

SnackBar XAML の設定 (最適ではないけど)動作する最小サンプル Prism の DI を使った例 参考 WPF の GUI ライブラリ「WPF UI」を使ってみる機会があったので、基本的な使い方をメモ。 シリーズの2つ目です。 WPF UI(UI ライブラリ)の使い方(1) 今回…

WPF UI(UI ライブラリ)の使い方(1)

インストールと初期設定 補足(直接指定) 補足(テーマの指定) XAML からライブラリを利用するための設定 システムのテーマを適用する メニュー 参考 WPF の GUI ライブラリ「WPF UI」を使ってみる機会があったので、基本的な使い方をメモ。 WPF の GUI ラ…

Unity Legacy Sprite Packer と Simple Sprite Packer の更新

古い記事で sprite をインポートする際は、Simple Sprite Packer のプラグインを使用していました。ここ数年の間、Unity をあまり触れることができなかったのですが、久しぶりにアプリを作る際に sprite の読み込みでこの Assets を使用すると obsolete の表…

Unity FPS の設定変更のやり方

Unity のアプリを作っているときに FPS を設定する機会がありました。 レバーレスコントローラーを練習するアプリを作ろうと思ったんで、60FPSに固定してやる必要がありました。ちなみに、こんな雰囲気のアプリになりました。(Android で動かして遊ん…

Blazor 入門1(どういうものか?)

私は主に WPF などの windows 環境向けのアプリケーションを今でもよく作るプログラマーなのですが、Blazor に触る機会ができたので、とても基本的なところからどういったものなのか、「Blazor入門」を読みつつ、学習した内容をアウトプットしたいと思います…

C# Prism DialogParameter の実装(学習)

Prism ライブラリーには、「Dialog Service」というものがあります。 利用してみるとこれがとても便利。また、ポップアップしたウィンドウに対して値渡しをする仕組みとしても面白いと思います。仕組みとして考えられているので、自分でもこうした拡張を予想…

C# OS にインストールされているデフォルトプリンター情報を取得

以前、.NET Framework 時代の記事だけど「C# OS にインストールされているプリンターのアイコンを取得」を書いた。 デフォルトのプリンター名も取得したくなったので、改めて .NET 用に書き直したのでメモ。 できること デフォルトのプリンターの名前を取得 …

C# NLog を利用したプログラムサンプル

NLog を利用する手順 Debugger File ソースコード上からの Logger アクセス サンプル 参考 NLog を実際に利用するために、サンプルを作成した。サンプルでは「Window起動時のイベント発生順位」と同じ内容を実行してみた。気になる点があったので、自分でも…

WPF UserControl クラスから ContentRendered イベントをバインドする

問題の例 ContentRendered イベントを UserControl から利用する ContentRendered.Command の実装例 サンプル 参考 通常、UserControl から ContentRendered イベントを使いたいシーンはあまり無いと思いますが、例外になるケースがありました。 Prism の Di…

.NET で文字エンコーディング shift-jis を利用する

対策 サポートしている文字エンコーディングを調べる 余談 参考 .NET (core) で、shift-jis の文字エンコーディングを利用しようとすると正しくエンコーディングを取得することができない。これは、.NET Framework 時代と異なる動作ですね。 var sjis = Enco…

PlanetScale KeyNotFoundException が発生する問題と対処

対処1:データベース プロバイダーを変更する 変更点1:初期化 EF 6 の初期化 EFcore 変更点2:型指定を丁寧にする 変更点3:使用する名前空間に注意 参考 Planetscale を利用していたのですが、ある日突然、何もしていないのに前日まで動作していた自作…

C# OleDb CA1416 の警告をクリアする (visual studio)

対応 pragma 参考 .NET で OleDb を利用すると以下の図のように .NET Frameworks 時代は表示されなかった警告が出るようになっていた。 警告の内容のとおり、OleDb 関係は windows でしか使えないことが問題ですね。言い換えると .NET が複数のプラットフォ…

C# NLog の基本的な使い方3(カスタマイズ)

target の layout renderer を使いこなす 日付のカスタマイズ レベルのカスタマイズ 例外のカスタマイズ target の layout renderer を実装する target を実装する どうなってるのか気になったらソースコードを読む サンプル 参考 この記事は、NLog(ログを…