Compartir a través de


Las aplicaciones que hacen referencia tanto a WPF como a WinForms deben desambiguar los tipos MenuItem y ContextMenu

Las aplicaciones que hacen referencia a Windows Presentation Foundation (WPF) y Windows Forms (WinForms) ahora deben desambiguar determinados tipos, como MenuItem y ContextMenu, para evitar errores en tiempo de compilación.

Versión introducida

.NET 10

Comportamiento anterior

Anteriormente, los tipos ContextMenu, DataGrid, DataGridCell, Menu, MenuItem, ToolBar y StatusBar se resolvían en el espacio de nombres System.Windows.Controls porque no existían en el espacio de nombres System.Windows.Forms en .NET Core 3.1 hasta .NET 9.0.

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

Nuevo comportamiento

Los tipos afectados en el System.Windows.Forms espacio de nombres provocan un error en tiempo de compilación cuando hay una referencia ambigua entre System.Windows.Controls y System.Windows.Forms.

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

Tipo de cambio disruptivo

Se trata de un cambio no compatible con el origen de.

Motivo del cambio

El cambio facilita la migración desde .NET Framework cuando no se pueden actualizar bibliotecas de terceros. Una aplicación de .NET 10 puede seguir haciendo referencia a dependencias de .NET Framework y controlar errores en tiempo de ejecución.

Use alias para resolver espacios de nombres en conflicto. Por ejemplo:

using ContextMenu = System.Windows.Controls.ContextMenu;

Consulte la documentación sobre conflictos de nombres de alias para obtener más detalles.

Las APIs afectadas