Anclar iconos secundarios desde aplicaciones de escritorio
Una aplicación de escritorio, como una aplicación WinUI 3 (mediante el SDK de Aplicaciones para Windows), o una aplicación de Windows Presentation Foundation (WPF) o Windows Forms (WinForms), puede anclar un icono secundario mediante una aplicación empaquetada (consulte Creación de un paquete MSIX desde el código). Anteriormente se conocía como Puente de dispositivo de escritorio.
Importante
Requiere Fall Creators Update: debe tener como destino el SDK 16299 y ejecutar la compilación 16299 o posterior para anclar iconos secundarios desde Puente de dispositivo de escritorio aplicaciones.
Agregar un icono secundario desde la aplicación SDK de Aplicaciones para Windows, WPF o WinForms es muy similar a una aplicación de UWP pura. La única diferencia es que debe especificar el identificador de ventana principal (HWND). Esto se debe a que al anclar un icono, Windows muestra un cuadro de diálogo modal que pide al usuario que confirme si desea anclar el icono. Si la aplicación de escritorio no configura el objeto SecondaryTile con la ventana del propietario, Windows no sabe dónde dibujar el cuadro de diálogo y se producirá un error en la operación.
Empaquetar la aplicación
Si va a crear una aplicación de SDK de Aplicaciones para Windows con WinUI 3, debe usar una aplicación empaquetada para anclar iconos secundarios. No se requieren pasos adicionales para empaquetar la aplicación si comienza con la plantilla de aplicación empaquetada.
Si usas WPF o WinForms y no has empaquetado la aplicación con el Puente de dispositivo de escritorio, deberás hacerlo antes de poder usar cualquier API de Windows Runtime (consulta Compilar un paquete MSIX a partir del código).
Inicializar y anclar un icono secundario mediante la interfaz IInitializeWithWindow
Nota:
Esta sección es para WinUI 3; y para WPF/WinForms con .NET 6 o posterior.
En el archivo del proyecto, establezca la propiedad TargetFramework en un valor que le proporcione acceso a las API de Windows Runtime (vea .NET 6 y versiones posteriores: Use la opción Moniker de la plataforma de destino). Esto incluye el acceso al espacio de nombres WinRT.Interop (consulte Llamada a las API de interoperabilidad desde una aplicación .NET). Por ejemplo:
<PropertyGroup> <!-- You can also target other versions of the Windows SDK and .NET; for example, "net6.0-windows10.0.19041.0" --> <TargetFramework>net6.0-windows10.0.22000.0</TargetFramework> </PropertyGroup>
Inicialice un nuevo objeto de icono secundario exactamente igual que lo haría con una aplicación para UWP normal. Para más información sobre cómo crear y anclar iconos secundarios, consulte Anclar iconos secundarios.
// Initialize the tile with required arguments var tile = new Windows.UI.StartScreen.SecondaryTile( "myTileId5391", "Display name", "myActivationArgs", new Uri("ms-appx:///Assets/Square150x150Logo.png"), TileSize.Default);
Recupere un identificador de ventana e inicialice el objeto de icono secundario con ese identificador. En el código siguiente,
this
es una referencia al objeto Window (ya sea una ventana winUI 3, una ventana WPF o una ventana WinForms). Para obtener más información, consulta Recuperar un identificador de ventana (HWND) y Mostrar objetos de interfaz de usuario de WinRT que dependen de CoreWindow.var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this); WinRT.Interop.InitializeWithWindow.Initialize(tile, hWnd);
Por último, solicita anclar el icono como lo harías en una aplicación para UWP normal.
// Pin the tile bool isPinned = await tile.RequestCreateAsync(); // Here, update UI to reflect whether user can now either unpin or pin
Envío de notificaciones de icono
Importante
Requiere abril de 2018, versión 17134.81 o posterior: debe ejecutar la compilación 17134.81 o posterior para enviar notificaciones de iconos o distintivos a iconos secundarios desde aplicaciones de Puente de dispositivo de escritorio. Antes de esta actualización de mantenimiento de .81, se produciría una excepción de 0x80070490 Elemento al enviar notificaciones de icono o distintivo a iconos secundarios desde Puente de dispositivo de escritorio aplicaciones.
El envío de notificaciones de icono o distintivo es el mismo que las aplicaciones para UWP. Consulte Envío de una notificación de icono local para empezar.