共用方式為


從桌面應用程式釘選次要磚

像是 WinUI 3 應用程式 (使用 Windows 應用程式 SDK) 這類桌面應用程式,或是 Windows Presentation Foundation (WPF) 或 Windows Forms (WinForms) 應用程式,可以透過使用封裝應用程式來釘選次要磚 (請參閱從您的程式碼建置 MSIX 套件)。 此方法舊稱為傳統型橋接器。

次要磚的螢幕快照

重要

需要 Fall Creators Update:您必須以 SDK 16299 為目標,並執行組建 16299 或更新版本,才能從傳統型橋接器應用程式釘選次要磚。

從 Windows 應用程式 SDK、WPF 或 WinForms 應用程式新增次要磚的方式,與單純 UWP 應用程式的方式非常類似。 唯一差異在於,您必須指定主視窗控制代碼 (HWND)。 這是因為釘選磚時,Windows 會顯示強制回應對話方塊,要求使用者確認是否要釘選磚。 如果桌面應用程式未透過擁有者視窗設定 SecondaryTile 物件,Windows 就不知道要在哪裡繪製對話方塊,而且作業將會失敗。

封裝您的應用程式

如果您使用 WinUI 3 建立 Windows 應用程式 SDK 應用程式,則必須使用封裝應用程式來釘選次要磚。 如果您一開始是使用封裝應用程式範本,則不需執行額外的步驟來封裝您的應用程式。

如果您使用 WPF 或 WinForms,且尚未使用傳統型橋接器封裝您的應用程式,則必須先執行此動作,才能使用任何 Windows 執行階段 API (請參閱從您的程式碼建置 MSIX 套件)。

使用 IInitializeWithWindow 介面初始化和釘選次要磚

注意

本節適用於 WinUI 3,以及具有 .NET 6 或更新版本的 WPF/WinForms。

  1. 在專案檔中,將 TargetFramework 屬性設定為能夠讓您存取 Windows 執行階段 API 的值 (請參閱 .NET 6 和更新版本:使用 Target Framework Moniker 選項)。 包括存取 WinRT.Interop 命名空間 (請參閱從 .NET 應用程式呼叫 interop API)。 例如:

    <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. 初始化新的次要磚物件的方式與一般 UWP 應用程式完全相同。 若要進一步了解如何建立和釘選次要磚,請參閱釘選次要磚

    // 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. 擷取視窗控制代碼,並使用該控制代碼初始化次要磚物件。 在下列程式碼中,this 是視窗物件的參考 (無論是 WinUI 3 視窗、WPF 視窗或 WinForms 視窗)。 如需詳細資訊,請參閱擷取視窗控制代碼 (HWND)顯示相依於 CoreWindow 的 WinRT UI 物件

    var hWnd = WinRT.Interop.WindowNative.GetWindowHandle(this);
    WinRT.Interop.InitializeWithWindow.Initialize(tile, hWnd);
    
  4. 最後,要求釘選磚,方法與一般 UWP 應用程式相同。

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

傳送磚通知

重要

需要 2018 年 4 月 17134.81 版或更新版本:您必須執行組建 17134.81 或更新版本,才能 傳統型橋接器應用程式將磚或徽章通知傳送至次要磚。 在此 .81 服務更新之前,從傳統型橋接器應用程式將磚或徽章通知傳送至次要磚時,會發生 0x80070490 找不到元素例外狀況。

傳送磚或徽章通知的方式與 UWP 應用程式相同。 請參閱傳送本機磚通知以開始著手。

資源