Windows アプリ SDK の最新の試験段階チャネル リリース ノート
重要
実験的チャネルは、運用環境での使用ではサポートされていません。また、実験的リリースを使用するアプリを Microsoft Store に公開することはできません。
試験段階チャネルには、開発の初期段階にある試験段階チャネル機能を備えた Windows アプリ SDK のリリースが含まれています。 実験的機能の API には、Experimental 属性があります。 コードで実験的 API を呼び出した場合は、ビルド時の警告が表示されます。 試験段階チャネル内のすべての API は、大規模な変更と破壊的変更の対象となります。 試験段階の機能と API は、今後のリリースからいつでも削除できます。
重要なリンク:
- 既存のアプリを以前のバージョンの Windows App SDK から新しいバージョンにアップグレードする場合は、「既存のプロジェクトを最新リリースの Windows App SDK に更新する」を参照してください。
- 実験的リリースに関するドキュメントについては、「Windows App SDK のプレビューおよび試験的チャンネル用ツールをインストールする」を参照してください。
試験段階チャネル リリース ノートのアーカイブ
- Windows アプリ SDK 1.5 の実験用チャネルリリース ノート
- Windows アプリ SDK 1.4 の試験段階チャネル リリース ノート
- Windows アプリ SDK 1.3 の試験段階チャネル リリース ノート
- Windows アプリ SDK 1.2 の試験段階チャネル リリース ノート
- Windows アプリ SDK 1.0 の試験段階チャネル リリース ノート
- Windows アプリ SDK 0.8 の試験段階チャネル リリース ノート
バージョン 1.6 試験的 (1.6.0-experimental1)
これは、実験的チャネルの最新リリースです。
ダウンロードするには、WinAppSDK NuGet のバージョンを 1.6.240531000-experimental1
に再ターゲットします。
1.6-experimental1 に必要な C# プロジェクトの変更
1.6-experimental1 では、Windows アプリ SDKマネージド アプリには Microsoft.Windows.SDK.NET.Ref (またはそれ以降) が必要です。これは、ファイル内csproj
の WindowsSdkPackageVersion を使用して指定できます。*.*.*.35-preview
次に例を示します。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows10.0.22621.0</TargetFramework>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
<WindowsSdkPackageVersion>10.0.22621.35-preview</WindowsSdkPackageVersion>
<PropertyGroup>
...
さらに、C#/WinRT を使用するマネージド アプリWindows アプリ SDK、Microsoft.Windows.CsWinRT2.1.0-prerelease.240602.1
(またはそれ以降) に更新する必要があります。
ネイティブ AOT のサポート
.NET PublishAot
プロジェクト プロパティは、ネイティブの Ahead-Of-Time コンパイルでサポートされるようになりました。 詳細については、「ネイティブ AOT デプロイ」を参照してください。 AOT はトリミングのサポートに基づいて構築されているため、次のトリミング関連のガイダンスの多くは AOT にも適用されます。
サポートのために PublishAot
、前のセクションで説明した C# プロジェクトの変更に加えて、そのパッケージからソース ジェネレーターを 有効にするには、Microsoft.Windows.CsWinRT2.1.0-prerelease.240602.1
(またはそれ以降) へのパッケージ参照も必要です。
Windows アプリ SDKは F5 のデプロイ時に発行ターゲットを呼び出すので、NuGet の復元時にこれをファイルに追加して有効PublishAot
にcsproj
することをお勧めします。
<PublishAot Condition="'$(ExcludeRestorePackageImports)'=='true'">true</PublishAot>
さらに、発行プロファイルまたはプロジェクトでリリース構成を発行するときに条件付きで有効に PublishAot
することをお勧めします。
<PublishAot Condition="'$(Configuration)'=='Release'">true</PublishAot>
AOT の問題の解決
このリリースでは、(リフレクション ベース {Binding}
のターゲットなど) トリミングを回避するために、すべての型が正しく根ざしていることを確認する責任があります。 以降のリリースでは、C#/WinRT と XAML コンパイラの両方が強化され、可能な限りルート化を自動化し、開発者にリスクをトリミングするよう警告し、解決するメカニズムを提供します。
部分クラス
C#/WinRT には、バージョン 2.1.0-prerelease.240602.1 のサポートも含まれています PublishAot
。 C#/WinRT を使用して AOT 発行のクラスを有効にするには、最初にマーク partial
する必要があります。 これにより、C#/WinRT AOT ソース アナライザーで静的分析用のクラスを属性化できます。 この属性が必要なのは、クラス (メソッドを含む、トリミングのターゲット) のみです。
リフレクションフリーの手法
AOT の互換性を有効にするには、リフレクション ベースの手法を静的に型指定されたシリアル化、AppContext.BaseDirectory、typeof() などに置き換える必要があります。詳細については、「トリム警告の概要」を参照してください。
ルート型
完全な{Binding}
サポートが実装されるまで、型はトリミングから保持される可能性があります。名前空間N
内の型T
を持つアセンブリA
を使用するプロジェクトP
では、動的に参照される (通常はトリミングされる) T
だけで保持できます。
P.csproj
:
<ItemGroup>
<TrimmerRootDescriptor Include="ILLink.Descriptors.xml" />
</ItemGroup>
ILLink.Descriptors.xml
:
<?xml version="1.0" encoding="utf-8"?>
<linker>
<assembly fullname="A">
<type fullname="N.T" preserve="all" />
</assembly>
</linker>
完全なルート記述子 XML 式の構文については、ルート記述子を参照してください。
Note
AOT サポートをまだ採用していない依存関係パッケージでは、実行時の問題が発生する可能性があります。
TabView タブのティアアウトの改善
TabView
では、タブをドラッグしたり、新しい CanTearOutTabs
ウィンドウにドラッグしたりするためのエクスペリエンスを強化する新しいモードがサポートされています。 この新しいオプションを有効にすると、タブドラッグは Edge と Chrome のタブドラッグエクスペリエンスとよく似ています。ドラッグ中に新しいウィンドウがすぐに作成され、ユーザーは画面の端にドラッグしてウィンドウを最大化したり、1 つのスムーズな動きでウィンドウをスナップしたりできます。 この実装ではドラッグ アンド ドロップ API も使用されないため、これらの API の制限の影響を受けません。 特に、管理者として管理者特権で実行されているプロセスでは、タブの破棄がサポートされています。
既知の問題: このリリースでは、スケール ファクターが 100% とは異なるモニターでは、ポインター入力の動作 CanTearOutTabs
が正しくありません。 これは、次の 1.6 リリースで修正される予定です。
新しい TitleBar コントロール
新しい TitleBar
コントロールを使用すると、次の機能を使用して、アプリ用の優れたカスタマイズ可能なタイトル バーを簡単に作成できます。
- 構成可能なアイコン、タイトル、サブタイトルのプロパティ
- 統合された戻るボタン
- 検索ボックスなどのカスタム コントロールを追加する機能
- ウィンドウの幅に基づく要素の自動非表示と表示
- アクティブまたは非アクティブなウィンドウの状態を表示するためのアフォーダンス
- 空の領域のドラッグ可能領域、テーマの応答性、既定のキャプション (最小/最大/閉じる) ボタン、組み込みのアクセシビリティ サポートなど、既定のタイトル バー機能のサポート
この TitleBar
コントロールは、タイトル バーのさまざまな組み合わせをサポートするように設計されているため、多くのカスタム コードを記述しなくても、必要なエクスペリエンスを柔軟に作成できます。 コミュニティ ツールキットのタイトル バープロトタイプからフィードバックを受け取り、追加のフィードバックをお待ちしております。
既知の問題: このリリースでは、一部の TitleBar
要素が読み込み時に表示されない問題のため、アイコンとタイトルのみが表示されます。 これを回避するには、次のコードを使用して、他の要素 (サブタイトル、ヘッダー、コンテンツ、フッター) を読み込みます。
public MainWindow()
{
this.InitializeComponent();
this.ExtendsContentIntoTitleBar = true;
this.SetTitleBar(MyTitleBar);
MyTitleBar.Loaded += MyTitleBar_Loaded;
}
private void MyTitleBar_Loaded(object sender, RoutedEventArgs e)
{
// Parts get delay loaded. If you have the parts, make them visible.
VisualStateManager.GoToState(MyTitleBar, "SubtitleTextVisible", false);
VisualStateManager.GoToState(MyTitleBar, "HeaderVisible", false);
VisualStateManager.GoToState(MyTitleBar, "ContentVisible", false);
VisualStateManager.GoToState(MyTitleBar, "FooterVisible", false);
// Run layout so we re-calculate the drag regions.
MyTitleBar.InvalidateMeasure();
}
この問題は、次の 1.6 リリースで修正される予定です。
その他の注目すべき変更点
- 封印されていない
ItemsWrapGrid
. これは下位互換性のある変更である必要があります。 PipsPager
では、最初の項目とリスト 項目の間で折り返すことができる新しいモードがサポートされています。RatingControl
は、いくつかのハードコーディングされたスタイル プロパティをテーマ リソースに移動することで、よりカスタマイズ可能になりました。 これにより、アプリはこれらの値をオーバーライドして RatingControl の外観をより適切にカスタマイズできます。
1.6-experimental1 用の新しい API
1.6-experimental1 には、次の新しい API が含まれています。 これらの API は実験段階ではありませんが、WinAppSDK の安定した製品版にはまだ含まれていません。
Microsoft.UI.Xaml.Controls
PipsPager
WrapMode
WrapModeProperty
PipsPagerWrapMode
None
Wrap
その他の 1.6-experimental1 API
このリリースには、次の新しい実験的 API と変更された実験的 API が含まれています。
Microsoft.UI.Content
ChildContentLink
ContentExternalOutputLink
IsAboveContent
ContentIsland
Children
Create
FindAllForCompositor
GetByVisual
Offset
RotationAngleInDegrees
ContentSite
Offset
RotationAngleInDegrees
ContentSiteView
Offset
RotationAngleInDegrees
IContentLink
IContentSiteBridge2
ReadOnlyDesktopSiteBridge
Microsoft.UI.Input
EnteredMoveSizeEventArgs
EnteringMoveSizeEventArgs
ExitedMoveSizeEventArgs
InputNonClientPointerSource
EnteredMoveSize
EnteringMoveSize
ExitedMoveSize
WindowRectChanged
WindowRectChanging
MoveSizeOperation
WindowRectChangedEventArgs
WindowRectChangingEventArgs
Microsoft.UI.Windowing
AppWindow
DefaultTitleBarShouldMatchAppModeTheme
Microsoft.UI.Xaml
XamlRoot
CoordinateConverter
TryGetContentIsland
Microsoft.UI.Xaml.Controls
ScrollingViewChangingEventArgs
ScrollView
ViewChanging
StackLayout
IsVirtualizationEnabled
IsVirtualizationEnabledProperty
TabView
CanTearOutTabs
CanTearOutTabsProperty
ExternalTornOutTabsDropped
ExternalTornOutTabsDropping
TabTearOutRequested
TabTearOutWindowRequested
TabViewExternalTornOutTabsDroppedEventArgs
TabViewExternalTornOutTabsDroppingEventArgs
TabViewTabTearOutRequestedEventArgs
TabViewTabTearOutWindowRequestedEventArgs
TitleBar
TitleBarAutomationPeer
TitleBarTemplateSettings
Microsoft.UI.Xaml.Controls.Primitives
ScrollPresenter
ViewChanging
その他の既知の問題
- ContentIsland.AutomationProviderRequested イベントを使用
Microsoft.UI.Content.ContentIslands
して処理しない XAML 以外のアプリケーション (またはオートメーション プロバイダーとして nullptr を返す) は、Voice Access、ナレーター、Accessibility Insights、Inspect.exe などのアクセシビリティまたは UI オートメーション ツールが有効になっている場合にクラッシュします。
バグ修正
このリリースには、次のバグ修正が含まれています。
- a の空の領域をクリックすると、常にフォーカスが最初の
ScrollViewer
フォーカス可能なコントロールに移動し、そのコントロールをScrollViewer
ビューにスクロールする問題を修正しました。 詳細については、GitHub の問題 #597 を参照してください。 - イベントが
Window.Activated
複数回発生することがある問題を修正しました。 詳細については、GitHub の問題 #7343 を参照してください。 - 展開時に子が
NavigationViewItem.IsSelected
表示されないようにプロパティをtrue
設定する問題を修正しました。 詳細については、GitHub の問題 #7930 を参照してください。 - キャプションとエッジ効果が
MediaPlayerElement
正しく表示されない問題をNone
DropShadow
修正しました。 詳細については、GitHub の問題 #7981 を参照してください。 - ポップアップを表示するときにプロパティが
Flyout.ShowMode
使用されない問題を修正しました。 詳細については、GitHub の問題 #7987 を参照してください。 - 丸めエラーが
NumberBox
発生することがある問題を修正しました。 詳細については、GitHub の問題 #8780 を参照してください。 - 古いバージョンの WinAppSDK に対してコンパイルされたライブラリを使用すると、型またはプロパティを検索しようとしてヒットする可能性がある問題を修正しました。 詳細については、GitHub の問題 #8810 を参照してください。
- ウィンドウを起動するときに初期キーボード フォーカスが設定されない問題を修正しました。 詳細については、GitHub の問題 #8816 を参照してください。
- 最初に表示された後に機能しなかった問題
FlyoutShowMode.TransientWithDismissOnPointerMoveAway
を修正しました。 詳細については、GitHub の問題 #8896 を参照してください。 - 一部のコントロールでテンプレート
Foreground
バインドとプロパティが正しく表示されない問題をBackground
修正しました。 詳細については、GitHub の問題 #7070、#9020、#9029、#9083、および #9102 を参照してください。 - セッターで使用されている
ThemeResource
テーマの変更時VisualStateManager
に更新されない問題を修正しました。 ポップアップのこの一般的な影響を受けるコントロール。 詳細については、GitHub の問題 #9198 を参照してください。 - キーフォーカスが
WebView
失われ、余分なぼかし/フォーカスイベントやその他の問題が発生する問題を修正しました。 詳細については、GitHub の問題 #9288 を参照してください。 - デバッグ出力にバインド エラーが表示される可能性がある
NavigationView
問題を修正しました。 詳細については、GitHub の問題 #9384 を参照してください。 - 負のビューボックスを定義する SVG ファイルがレンダリングされなくなる問題を修正しました。 詳細については、GitHub の問題 #9415 を参照してください。
- 向きの変更
ItemsView.Layout
によって項目が削除される問題を修正しました。 詳細については、GitHub の問題 #9422 を参照してください。 - スクロールで
ScrollView
多くのデバッグ出力が生成される問題を修正しました。 詳細については、GitHub の問題 #9434 を参照してください。 - 正常に動作しない問題を
MapContorl.InteractiveControlsVisible
修正しました。 詳細については、GitHub の問題 #9486 を参照してください。 - イベントが
MapControl.MapElementClick
正しく発生しない問題を修正しました。 詳細については、GitHub の問題 #9487 を参照してください。 - 弱参照を使用する前に x:Bind が null をチェックせず、クラッシュする可能性がある問題を修正しました。 詳細については、GitHub の問題 #9551 を参照してください。
- プロパティを変更しても位置が
TeachingTip.Target
正しく更新されない問題を修正しました。 詳細については、GitHub の問題 #9553 を参照してください。 - WebView2 でドロップダウンが応答しない問題を修正しました。 詳細については、GitHub の問題 #9566 を参照してください。
- 使用
GeometryGroup
時のメモリ リークを修正しました。 詳細については、GitHub の問題 #9578 を参照してください。 - インから
ItemRepeater
非常に多くの項目をスクロールすると、レンダリング フレームが空白になる可能性がある問題をScrollView
修正しました。 詳細については、GitHub の問題 #9643 を参照してください。 - 動作していない問題
SceneVisual
を修正しました。
関連トピック
Windows developer
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示