Rx.NET と ReactiveUI を用いたカスタム時刻入力コントロールの実装

目的 WPF アプリケーションにおいて、ReactiveX(Rx.NET)および ReactiveUI を活用して、秒数を基準とした時刻入力用のカスタムコントロールを作成する。このコントロールは以下を満たす。 内部に DateTimeUpDown(Extended.Wpf.Toolkit 使用)を持ち、表示・編集形式は "HH:mm:ss" に限定。 日付部分は固定(例: 2000年1月1日)で、ユーザ ...

7月9日 16:29 投稿

WPFカスタムコントロールの開発

WPFにおけるカスタムコントロールの実装方法 WPF(Windows Presentation Foundation)では、カスタムコントロールをStyle要素を使用して外観と動作を定義します。StyleはWPFの強力なリソース機能であり、開発者は一連のプロパティ値を定義して、単一のコントロールまたは複数のコントロールに適用できます。 カスタムコントロールにおけるStyleの役割 1. 視覚的デザイン ...

6月27日 17:53 投稿

MVVMパターンの実装ガイド

1. MVVMパターンの基本概念 MVVM(Model-View-ViewModel)は、プレゼンテーション層とビジネスロジックを分離するためのアーキテクチャパターンです。このパターン実装には、データバインディングとコマンドパターンという2つの主要な技術が使用されます。 データバインディングの役割 データバインディングは、ViewとViewModel間の自動データ同期を可能にする機構です。Vi ...

6月21日 16:25 投稿

WPF アプリケーションで SetWindowDisplayAffinity を使用して画面キャプチャ時に特定ウィンドウを除外する

画面共有やスクリーンキャプチャ機能を実装する際、自アプリケーションのウィンドウをキャプチャ対象から除外したいケースがあります。例えば、会議アプリケーションではホストのメインウィンドウや録画インジケータが他端末に表示されないよう、透明化または非表示にする必要があります。この要件を満たすために、Windows が提供する Win32 API の SetWindowDisplayAffin ...

6月15日 20:59 投稿

WPFでConfigureAwait(false)を使うとUIスレッドで例外が発生する理由

WPFアプリケーションで非同期メソッドを扱う際、ConfigureAwait(false) を付けると UI 要素にアクセスできなくなるケースがよくある。次の最小構成で再現してみる。 画面定義(XAML) <Window x:Class="Demo.AsyncAwaitWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/ ...

6月6日 21:26 投稿

WPFにおけるリストデータの追加・更新・削除実装

要件と実装ポイント リストデータの操作機能を実装する場合、以下の要件を満たす必要があります: テキスト入力フィールドからデータを追加 選択項目の内容を更新 選択項目の削除 主要な実装要素 DisplayMemberPathによるプロパティ表示指定 ObservableCollectionによる自動更新通知 INotifyPropertyChangedインターフェースの実装 ItemsSourceプロパテ ...

5月31日 22:09 投稿

Windows 7環境におけるAero2テーマのロードエラー

あるGUIツールを開発しており、同僚からWindows 7環境でインターフェースが正常に表示されないという報告を受けました。 調査の結果、ビューの初期化プロセス中にPresentationFramework.Aero2がロードできないことが判明し、以下の例外が発生していました: {System.BadImageFormatException: ファイルまたはアセンブリ 'PresentationFramework.Aero2, PublicKeyToken=31bf ...

5月25日 19:30 投稿