この記事では、.NET 10 Preview の Windows Presentation Foundation (WPF) の新機能の概要について説明します。 詳細については、 リリースのお知らせを参照してください。
.NET 10 Preview 5 は 2025 年 6 月にリリースされました。
リリースのお知らせ
各リリースのお知らせでは、.NET 10 の WPF の変更に関する詳細情報が提供されます。
パフォーマンスの向上
内部データ構造をベース .NET 型 (ReadOnlyCollection<T>など) に置き換えることで、パフォーマンスが向上しました。 これにより、UI オートメーションとファイル ダイアログでの割り当てが最小限に抑えられ、ピクセル形式の変換が高速化されます。
キャッシュ操作、配列処理、およびフォント コレクション ローダーをマネージド コードに移行することで、パフォーマンスが向上しました。
パフォーマンスは、フォント レンダリング、動的リソース、入力コンポジション、トレース ログ、正規表現の使用、XAML 解析全体で最適化されました。
流暢なスタイルの変更
WPF での Fluent UI スタイルのサポートを向上させるために、.NET 10 ではさまざまなバグ修正が行われています。 Fluent UI スタイルのサポートはまだ進行中です。
Fluent スタイルでは、次のようなコントロールが追加されました。
Expanderのアニメーションを修正しました。
HighContrast
に関連するクラッシュを修正しました。コントロールに不足している RecognizesAccessKey を追加しました。
MenuItem、Expander、TreeViewItemの右から左へのレイアウトの問題が修正されました。
Warnung
.NET 10 Preview 4 では、fluent スタイルに関連するバグが導入されました。 詳細については、 .NET 10 Preview 4 のリリース ノートを参照してください。
クリップボードの変更
WPF フォームと Windows フォームでは、同じクリップボード API が使用されるようになりました。 どちらのデスクトップ テクノロジも、クリップボードとの対話方法を統一します。
BinaryFormatter
は .NET 9 で非推奨扱いになりましたが、一部のクリップボード操作に使用されています。 それにより、該当するクリップボード操作のために互換性パッケージにオプトインするか、該当する操作を回避することが必要になっていました。 .NET 10 では、BinaryFormatter
からの移行を促進するために一部のクリップボード メソッドが非推奨となり、使用すべきでないことが示されました。
BinaryFormatter
の必要性をなくしていくために、クリップボード データの JSON シリアル化に役立つメソッドの追加が進められています。
バグの修正
UI 要素のカーソルの種類、ビットマップ ストリームが null の場合のクラッシュの問題、ビルドとテストのステップ エラー、BitmapMetadata とネイティブの依存関係の軽微なバグなど、さまざまなバグ修正に対処しました。
ScrollViewer と ContextMenuのローカライズに関する問題に対処しました。
System.Xaml
と WindowsBase
のための4,000以上の単体テストが追加されました。
キャッシュ操作、配列処理、およびフォント コレクション ローダーをマネージド コードに移行することで、パフォーマンスが向上しました。
コードのクリーンアップ
.NET Framework から移動すると、未使用のコード アクセス セキュリティ (CAS) 関連の属性とコードが残されます。 これらの多くは、.NET コードベースで削除されています。
- 未使用の CAS リソース文字列とその翻訳をすべてのライブラリから削除します。
-
OleCmdHelper/ISecureCommand
から未使用の CAS および XBAP コードを削除します。 -
FontSourceCollection/FontSource
から未使用の CAS コードを削除します。
コードの読みやすさと保守容易性を向上させるために、構文の標準化や引数の明確さを含む広範なコード クリーンアップを実施しました。 デバッグ パターンが最新化され、保守容易性のために ArrayList
などのレガシ コンストラクトが段階的に廃止されました。
新しい API
コミュニティの共同作成者 bstordrup は、より多くのボタンと結果のオプションで MessageBox
を強化しました。 詳細については、 #9613 を参照してください。
namespace System.Windows
{
public enum MessageBoxButton
{
OK = 0,
OKCancel = 1,
+ AbortRetryIgnore = 2,
YesNoCancel = 3,
YesNo = 4,
+ RetryCancel = 5,
+ CancelTryContinue = 6,
}
public enum MessageBoxResult
{
None = 0,
OK = 1,
Cancel = 2,
+ Abort = 3,
+ Retry = 4,
+ Ignore = 5,
Yes = 6,
No = 7,
+ TryAgain = 10,
+ Continue = 11,
}
}
その他の変更
- よりスムーズな開発ワークフローを容易にするために、設計時マークアップのコンパイルを組み込みました。
.NET Desktop feedback