Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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.
Action recommandée
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
- System.Windows.Forms.ContextMenu
- System.Windows.Forms.DataGrid
- System.Windows.Forms.DataGridCell
- System.Windows.Forms.Menu
- System.Windows.Forms.MenuItem
- System.Windows.Forms.ToolBar
- System.Windows.Forms.StatusBar
- System.Windows.Controls.ContextMenu
- System.Windows.Controls.DataGrid
- System.Windows.Controls.DataGridCell
- System.Windows.Controls.Menu
- System.Windows.Controls.MenuItem
- System.Windows.Controls.ToolBar
System.Windows.Controls.StatusBar