SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

UWPアプリ開発の最前線

クリップボードビューアを作ろう!
~Windows 10 1809の新機能「クリップボード履歴」にアクセス

UWPアプリ開発の最前線 第10回

履歴からクリップボードへ書き戻す

 1809の履歴関係のAPIには、履歴をクリップボードへ書き戻す機能もあります。

 サンプルアプリでは、次の画像のように実装してあります。履歴アイテムのどれかをクリックすると、それがクリップボードへ書き戻されます。次に貼り付け操作を行うと、クリックした履歴アイテムが貼り付けられるというわけです。なお、履歴アイテムはそのまま履歴リストに残ります。

サンプルアプリ
サンプルアプリ(データをクリックしたときの動作)

 これは、ClipboardクラスのSetHistoryItemAsContent静的メソッドを、書き戻したい履歴アイテムのClipboardHistoryItemオブジェクトを引数にして呼び出せば実現できます。

 セルのデータには履歴アイテムのデータを表すClipboardHistoryDataオブジェクトがバインドされるように画面を作ってあります。グリッドのSelectionChangedイベントハンドラーに渡される新しく選択されたデータは、クリックされた履歴アイテムを持つClipboardHistoryDataオブジェクトになります。そこから履歴アイテム(ClipboardHistoryItemオブジェクト)を取り出して、SetHistoryItemAsContent静的メソッドを呼び出します(次のコード、MainPage.xaml.cs)。

履歴をクリップボードへ書き戻すイベントハンドラー
private void AdaptiveGridViewControl_SelectionChanged(object sender,
                                                      SelectionChangedEventArgs e)
{
  var selectedData = e.AddedItems.FirstOrDefault() as Data.ClipboardHistoryData;
  if (selectedData != null)
  {
    Clipboard.SetHistoryItemAsContent(selectedData.HistoryItem);
  }
}

次のページ
Windows Community Toolkitを利用したUI

この記事は参考になりましたか?

UWPアプリ開発の最前線連載記事一覧

もっと読む

この記事の著者

biac(ばいあっく)

HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11229 2018/12/07 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー