かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

UWP

C++ の既存アプリにちょっとずつ Windows 10 風味を付け加えてみる

C++ ネタです。久しく触ってない言語なのと、へましたらメモリリークやらなんやらしやすい言語なので、そういうまずいところ見たら教えてください! ではやっていきます。 はじめに 先日、以下の記事を書きました。 blog.okazuki.jp 最初に触った言語が C/C+…

ネイティブの C++ から UWP の API を呼ぶ (C++/WinRT を使って)

UWP

C++/WinRT っていうのが追加されてたんですね。知らなかったのですが。 docs.microsoft.com これを使うと C++/CX とかみたいな魔改造言語じゃなくて C++ で UWP の開発が出来ますし、UWP の API を呼ぶのもお手軽です。 ちょっとやってみましょう。 環境設定…

MFC のような C++ アプリから Microsoft ストアのアプリ内購入 API を使う

まず、MFCアプリのプロジェクトを appx にパッケージングします。 Visual Studio を使ってデスクトップ アプリケーションをパッケージ化します。 - UWP app developer | Microsoft Docs 次に UWP の API を使うための設定を以下のページに従ってやります。 W…

UWP の TreeView でデータバインディングを使ってデータを表示する(プレビュー)

UWP

Windows 10 April 2018 Update で追加された TreeView ですがデータバインディングでデータを表示することが出来なくて不満でしたが、今見たらプレビューで出来るようです。 ちょっと試してみました。使い方は簡単です。ItemsSource にコレクションをバイン…

WPF や WinForms などで UWP のコントロールを使う XAML Island(プレビュー)

UWP のコントロールを WPF や WinForms などで使う XAML Island ですが現在プレビュー段階ですが試すことが出来るようになっています。 NuGet パッケージのソースとして https://dotnet.myget.org/F/uwpcommunitytoolkit/api/v3/index.json を追加することで…

UWPで子 Window をサブディスプレイ(プロジェクターなど)に表示する方法(ただしフルスクリーンでな!)

UWP

UWP で子ウィンドウ作れるんですが、場所の制御方法がイマイチ自由度が無いですね…。 変な位置に隠れてウィンドウ出して、こそこそ動き回るタイプのアプリを作らせないためでしょうか? 今回は、メインのウィンドウから子ウィンドウを出して、そいつをサブデ…

他の人のアカウントに提出する用に UWP アプリをビルドする方法

UWP

一番簡単なのは、ストアのダッシュボードから Azure AD を紐づけて、そこに開発者ロールで追加してもらえば、普通に Visual Studio からストア向けパッケージ作れるんですが、それが出来ないケースでの方法です。 アカウント ユーザーの管理 - UWP app devel…

Windows 8.1 アプリから UWP へのアップグレード時の ApplicationData.Current.LocalFolder の中身

UWP

前準備 アプリ名を予約しておきます。 同じアプリに紐づけた Windows 8.1 アプリと UWP アプリを準備します。 試したこと ローカルデータの保存場所 UWP やストアアプリでローカルデータを保存しておくための ApplicationData.Current.LocalFolder のパスが…

de:code 2018 の「最新 Windows 10 に最適なデスクトップアプリ開発手法ご紹介」で伝えたかったこと

UWP

参加していただいた方ありがとうございました! セッション動画やスライドは順次公開されていくと思います。私はセッション中で使ったプログラムなどは GitHub に置いてありますのでご興味がおありでしたらご確認ください。 github.com 伝えたかったこと 一…

HoloLens の入力デバイスとしてのスマートフォン

HoloLens って AirTap とかだけだと操作めんどくさいですよね? ボタンを押したい or 文字を入れたいだけなのに視線を移動させてえいってやる感じが。 Project Rome Windows 10 アニバーサリーアップデートのタイミングで公表された Project Rome というもの…

UWP でアプリを閉じるときに確認画面を出す方法

UWP

これずっと出来ないと思ってたのですが de:code 用に色々見てたら出来るっちゃぁ出来るようになってるのを見つけました。 下記の権限のサイトをみてみると confirmAppClose っていうのがある!? docs.microsoft.com 試してみよう confirmAppClose の機能を …

UWP Community Toolkit が Windows Community Toolkit に名前が変わったみたいです

UWP

de:code 2018 の準備のために Blog チェックしてたらこんな記事を見つけました。 blogs.windows.com おぉ!名前変わったんですね!! github.com 正直なところ Toolkit の名前のライブラリにはあまりいい思い出がないので大丈夫かなぁと思ってましたけど、結…

SignalR を Windows Mixed Reality で使いたい

追記 Unity Editor 上でも動くみたいです。やったね! tarukosu.hatenablog.com 本文 SignalR は簡単に言うと WebSocket とかをいい感じに隠してくれてサーバーからクライアント(Webやネイティブアプリなど)に対して処理を実行することが出来るライブラリ…

UWP の配置に関する blog があった!

UWP

今日まで知らなかったんですが、UWP の配置に特化したブログがあったんですね…。 blogs.msdn.microsoft.com msix とかについても、何かあったらここになるのかな?それとも別の blog とかがあるんだろうか(探してない) とりあえずもうすぐ出るであろう Red…

Progressive Web app を Windows 10 のインストールパッケージに固めてしまおう(Microsoft ストアに出せるようになるよ)

UWP

さて、Progressive Web app(PWA)が Microsoft store で配られるのですが自分のサイトも!!と思ってる人は以下のような手順でいけると思います。 マニフェストを用意しよう PWA Builder というサイトを使うと簡単に出来ます。 www.pwabuilder.com まぁ、マ…

DevCenter ダッシュボードに UWP アプリをテスト用に配布するための Private audience という機能が追加されました

UWP

blogs.windows.com UWP のアプリを本番環境(要はストアから入れた状態)でテストするために限定的なユーザーに配る方法が追加されました。 これは再申請とかしなくても、配る対象のユーザーを変更すれば配布対象のユーザーが絞れそうですね。 やり方 まずユ…

WPF などの .NET Framework のアプリから UWP の API を呼ぶ

同じチームの Matteo さんが書いてくれてた記事に ConditionalAttribute が使ってあって、あぁこういう機能あったなぁと思ったのでメモがてら記事をなぞってやってみました。 Desktop Bridge – Enhancing a desktop application with the UWP APIs – App Con…

Visual Studio 2017 15.5 + Windows 10 Fall Creators Update で UWP をデバッグ実行するとアプリ終了後に Visual Studio がクラッシュする

UWP

はい。辛い。 どうも根深いみたいで下記サイトに回避方法が書いてありました。 developercommunity.visualstudio.com 私は devenv.exe.config の AppContextSwithcOverrides タグを以下のようにする方法で回避できました(設定画面でいじるだけでは効果がな…

UWP の画面遷移でいい感じのアニメーションをさせよう

UWP

Connected Animation というものを使うと出来ます。 ConnectedAnimationService.GetForCurrentView() で取得した ConnectedAnimationService に対して画面遷移前と画面遷移後で対応するコントロールの紐づけをしてやる感じです。なので、画面遷移前に画面遷…

DesktopBridge アプリで UWP アプリと Win32 アプリの連携方法

1つ前の記事で起動方法は紹介しました。 blog.okazuki.jp 起動は出来たら次したいことは連携ですよね。ということでしてみましょう。 仕組み UWP の AppService を使ってやるのがお勧めです。 docs.microsoft.com UWP 側で AppService を作っておいて、それ…

Desktop Bridge のアプリで UWP から同じパッケージ内の exe を起動する方法

表題の通りです。 UWP だけではできないことは DesktopBridge を使うことで実現できることもあるというわけなのでやってみましょう。 プロジェクトの作成 以下の 3 つのプロジェクトを作成します。 Windows アプリケーション パッケージ プロジェクト 名前は…

C# で何か出来るのか?まとめてみた

C# は好きな言語です。C# 1.0 が 2002 年 4 月に出てからもうすぐ16 年!?になろうとしています。 今でも結構イケてる部類にランキングしてると個人的に思ってる C# ですが何が出来るのか?というのをまとめてみたいと思います。C# をこれから始めようと思…

pfx を作って appx に署名するまで

UWP

いつも忘れてしまうのでメモ。 makecert -r -pe -n "CN=XXXX" -eku 1.3.6.1.5.5.7.3.3 -pe -sv my.pvk my.cer pvk2pfx -pvk my.pvk -spc my.cer -pfx my.pfx makeappx.exe pack /d .\dirpath /p appxpath.appx /l signtool sign /fd SHA256 /a /f .\my.pfx .…

JXUGC #24 春の App Center 祭りで発表してきました

Visual Studio App Center 概要というタイトルで発表してきました。 jxug.connpass.com 発表資料を置いておきます。 Visual Studio App center 概要 from 一希 大田 www.slideshare.net

Qt 製のアプリを DesktopBridge でストアに公開する方法

意外と簡単だったのでメモします。 環境 Windows 10 Fall Creators Update Visual Studio 2017 Qt Visual Studio Tools Qt 5.10.0 for Windows 手順 配布対象のアプリケーションの準備 とりあえず私は Qt 製アプリを持ってないので適当に Qt GUI Application…

UWP Community Toolkitを使って今風?なListViewのUIを実現する

UWP Community Toolkitが、ちょっと目をはなしてる隙に1.4.1にまでバージョンアップしてました。 色々なコントロールとかが提供されているのですが、ListViewに絡むコントロールをいくつか紹介したいと思います。 インクリメンタルローディング 最近のアプリ…

一定時間やりなおしが出来るようにする

メール削除とかしたけど、一定時間取返しがきくみたいなUIがありますよね。 あぁいうのどうやるんだろうというのを考えてみました。 UWPでやってみますが、WPFでもXamarin.Formsでも基本的に同じ感じになると思います。見た目凝るのが一番難しそう。 Modelの…

当然っちゃ当然だけどXamarin.FormsでHoloLens対応アプリ作れます

HoloLensではUWPが動く。 Xamarin.FormsではUWPの開発が可能。 ということで当然ですが動きます。HoloLensでXamarin.Formsで作ったアプリが!! iOS, Android対応アプリをXamarin.Formsで作ってる人は、やってみてもいいのではと思いました。 実験 Prism.For…

UWPアプリでSurface Dialのデフォルトメニューを消す

UWP

Surface Dial対応のアプリを作ろうと思ったときにデフォルトのメニューが邪魔なときがあります。 これは簡単に消すことができます。 // デフォルトメニューを消す var config = RadialControllerConfiguration.GetForCurrentView(); config.SetDefaultMenuIt…

Surface DialをUWPアプリから使う

UWP

Surface Studioと同時に発表されて何かと話題のSurface Dialですが、こいつのAPIはWindows 10 AUでこっそりと入っていたみたいです。 ということで簡単にですが使い方を書いてみようと思います。 何もしないという選択肢 まず、Surface Dialですが何もしなく…