Menyematkan petak sekunder dari aplikasi desktop

Aplikasi desktop seperti aplikasi WinUI 3 (menggunakan SDK Aplikasi Windows), atau aplikasi Windows Presentation Foundation (WPF) atau Formulir Windows (WinForms), dapat menyematkan petak peta sekunder dengan menggunakan aplikasi paket (lihat Membangun paket MSIX dari kode Anda). Ini sebelumnya dikenal sebagai Desktop Bridge.

Cuplikan layar petak sekunder

Penting

Memerlukan Pembaruan Fall Creators: Anda harus menargetkan SDK 16299 dan menjalankan build 16299 atau yang lebih baru untuk menyematkan petak sekunder dari aplikasi Desktop Bridge.

Menambahkan petak peta sekunder dari aplikasi SDK Aplikasi Windows, WPF, atau WinForms Sangat mirip dengan aplikasi UWP murni. Satu-satunya perbedaan adalah Anda harus menentukan handel jendela utama (HWND). Ini karena ketika menyematkan petak peta, Windows menampilkan dialog modal yang meminta pengguna untuk mengonfirmasi apakah mereka ingin menyematkan petak. Jika aplikasi desktop tidak mengonfigurasi objek SecondaryTile dengan jendela pemilik, maka Windows tidak tahu di mana menggambar dialog, dan operasi akan gagal.

Mengemas aplikasi Anda

Jika Anda membuat aplikasi SDK Aplikasi Windows dengan WinUI 3, Anda harus menggunakan aplikasi paket untuk menyematkan petak sekunder. Tidak ada langkah tambahan yang diperlukan untuk mengemas aplikasi jika Anda mulai dengan templat aplikasi yang dipaketkan.

Jika Anda menggunakan WPF atau WinForms, dan Belum mengemas aplikasi dengan Desktop Bridge, Anda harus melakukannya sebelum dapat menggunakan API Windows Runtime apa pun (lihat Membangun paket MSIX dari kode Anda).

Menginisialisasi dan menyematkan petak sekunder menggunakan antarmuka IInitializeWithWindow

Catatan

Bagian ini untuk WinUI 3; dan untuk WPF/WinForms dengan .NET 6 atau yang lebih baru.

  1. Dalam file proyek, atur properti TargetFramework ke nilai yang memberi Anda akses ke WINDOWS Runtime API (lihat .NET 6 dan yang lebih baru: Gunakan opsi Target Framework Moniker). Itu termasuk akses ke namespace WinRT.Interop (lihat Memanggil API interop dari aplikasi .NET). Contohnya:

    <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>
    
  2. Inisialisasi objek petak peta sekunder baru persis seperti yang Anda lakukan dengan aplikasi UWP normal. Untuk mempelajari selengkapnya tentang membuat dan menyematkan petak sekunder, lihat Menyematkan petak sekunder.

    // 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);
    
  3. Ambil handel jendela, dan inisialisasi objek petak sekunder dengan handel tersebut. Dalam kode di bawah ini, this adalah referensi ke objek Window (baik jendela WinUI 3, jendela WPF, atau jendela WinForms). Untuk informasi selengkapnya, lihat Mengambil handel jendela (HWND) dan menampilkan objek UI WinRT yang bergantung pada CoreWindow.

    var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
    WinRT.Interop.InitializeWithWindow.Initialize(tile, hWnd);
    
  4. Terakhir, minta untuk menyematkan petak peta seperti yang Anda lakukan di aplikasi UWP normal.

    // Pin the tile
    bool isPinned = await tile.RequestCreateAsync();
    
    // Here, update UI to reflect whether user can now either unpin or pin
    

Mengirim pemberitahuan petak peta

Penting

Memerlukan April 2018 versi 17134.81 atau yang lebih baru: Anda harus menjalankan build 17134.81 atau yang lebih baru untuk mengirim petak peta atau pemberitahuan lencana ke petak sekunder dari aplikasi Desktop Bridge. Sebelum pembaruan layanan .81 ini, pengecualian 0x80070490 Element tidak ditemukan akan terjadi saat mengirim petak peta atau pemberitahuan lencana ke petak sekunder dari aplikasi Desktop Bridge.

Mengirim pemberitahuan petak atau lencana sama dengan aplikasi UWP. Lihat Mengirim pemberitahuan petak peta lokal untuk memulai.

Sumber