Partager via


Les applications référençant WPF et WinForms doivent lever l’ambiguïté des types MenuItem et ContextMenu

Les applications qui référencent à la fois Windows Presentation Foundation (WPF) et Windows Forms (WinForms) doivent maintenant désambiguer certains types, tels que MenuItem et ContextMenu, pour éviter les erreurs de compilation.

Version introduite

.NET 10

Comportement précédent

Auparavant, les types ContextMenu, DataGrid, DataGridCell, Menu, MenuItem, ToolBar et StatusBar étaient résolus dans l'espace de noms System.Windows.Controls, car ils n'existaient pas dans l'espace de noms System.Windows.Forms dans .NET Core 3.1 à .NET 9.0.

<ImplicitUsings>enable</ImplicitUsings>
<UseWindowsForms>true</UseWindowsForms>
<UseWPF>true</UseWPF>

Nouveau comportement

Les types affectés dans l'espace de noms System.Windows.Forms provoquent une erreur compile-time lorsqu'il existe une référence ambiguë entre System.Windows.Controls et System.Windows.Forms.

CS0104 'ContextMenu' is an ambiguous reference between 'System.Windows.Controls.ContextMenu' and 'System.Windows.Forms.ContextMenu'

Type de changement cassant

Il s’agit d’une modification incompatible avec la source .

Raison de la modification

La modification facilite la migration à partir du .NET Framework lorsque les bibliothèques tierces ne peuvent pas être mises à jour. Une application .NET 10 peut continuer à référencer les dépendances .NET Framework et à gérer les erreurs au moment de l’exécution.

Utilisez des alias pour résoudre les espaces de noms en conflit. Par exemple:

using ContextMenu = System.Windows.Controls.ContextMenu;

Pour plus d’informations, consultez la documentation sur les conflits de noms d’alias .

API affectées