次の方法で共有


デスクトップ アプリからセカンダリ タイルをピン留めする

WinUI 3 アプリ (Windows アプリ SDK を使用) や Windows Presentation Foundation (WPF) または Windows フォーム (WinForms) アプリなどのデスクトップ アプリでは、パッケージ アプリを使用してセカンダリ タイルをピン留めできます ( コードからの MSIX パッケージのビルドを参照)。 これは、以前はデスクトップ ブリッジとして知られていました。

セカンダリ タイルのスクリーンショット

Von Bedeutung

Fall Creators Update が必要: デスクトップ ブリッジ アプリからセカンダリ タイルをピン留めするには、SDK 16299 をターゲットとし、ビルド 16299 以降を実行している必要があります。

Windows App SDK、WPF、または WinForms アプリケーションからセカンダリ タイルを追加することは、純粋な UWP アプリとよく似ています。 唯一の違いは、メイン ウィンドウ ハンドル (HWND) を指定する必要がある点です。 これは、タイルをピン留めすると、タイルをピン留めするかどうかをユーザーに確認するように求めるモーダル ダイアログが表示されるためです。 デスクトップ アプリケーションが所有者ウィンドウで SecondaryTile オブジェクトを構成していない場合、Windows はダイアログを描画する場所を認識せず、操作は失敗します。

アプリをパッケージ化する

WinUI 3 を使用して Windows App SDK アプリケーションを作成する場合は、パッケージ化されたアプリケーションを使用してセカンダリ タイルをピン留めする必要があります。 パッケージ化されたアプリ テンプレートから開始する場合、アプリをパッケージ化するために追加の手順は必要ありません。

WPF または WinForms を使用していて、デスクトップ ブリッジでアプリをパッケージ化していない場合は、Windows ランタイム API を使用する前に行う必要があります ( コードからの MSIX パッケージのビルドを参照)。

IInitializeWithWindow インターフェイスを使用してセカンダリ タイルを初期化してピン留めする

このセクションは WinUI 3 用です。および .NET 6 以降の WPF/WinForms 用。

  1. プロジェクト ファイルで、 TargetFramework プロパティを Windows ランタイム API にアクセスできる値に設定します ( 「.NET 6 以降: ターゲット フレームワーク モニカー オプションを使用する」を参照)。 これには 、WinRT.Interop 名前空間へのアクセスが含まれます ( 「.NET アプリからの相互運用 API の呼び出し」を参照)。 例えば次が挙げられます。

    <PropertyGroup>
      <!-- You can also target other versions of the Windows SDK and .NET; for example, "net8.0-windows10.0.19041.0" -->
      <TargetFramework>net8.0-windows10.0.19041.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 は Window オブジェクトへの参照です (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
    

タイル通知を送信する

Von Bedeutung

2018 年 4 月バージョン 17134.81 以降が必要です。デスクトップ ブリッジ アプリからタイルまたはバッジ通知をセカンダリ タイルに送信するには、ビルド 17134.81 以降を実行している必要があります。 この .81 サービス更新プログラムの前に、デスクトップ ブリッジ アプリからセカンダリ タイルにタイルまたはバッジ通知を送信するときに、0x80070490 要素が見つからない 例外が発生していました。

タイルまたはバッジ通知の送信は、UWP アプリと同じです。 開始するには、「ローカル タイル通知を送信する を参照してください。

リソース