かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

UWP

UWPで電話に実機デプロイができなくなった

UWP

何がきっかけかわかりませんが以下のエラーが出て実機デプロイできなくなりました…。 2>エラー: DEP0001 : 予期しないエラー: Install failed. Please contact your software vendor. (Exception from HRESULT: 0x80073CF9) 何だろう。 まとめ 他の人のVisua…

UWPで共有コントラクト 送信側

UWP

共有コントラクトってUWPでも言うんですかね? Windows 8で追加されて、めでたく?Windows 10で廃止されたチャームにあった共有ですが、UWPではアプリから明示的に共有を表示してやる必要があります。それ以外はWindowsストアアプリの頃と変わっていません。…

UWPでカメラから動画撮影

UWP

UWPでカメラからの動画を録画する方法です。 CameraCaptureUIクラスを使用します。 VideoSettings.Formatで保存するタイプを指定してCapgureFileAsyncで録画とファイルへの保存を行います。 後は、FileSavePickerあたりで適当なファイルに出力してやればOKで…

特定サイトを閲覧するためのアプリを作る「Life with Windows 10 Mibileを題材に その2」

UWP

blog.okazuki.jp 真面目にアプリを作る方法を紹介しましたが、もう1つHosted Web appというものもあるので、こちらも紹介します。 これは、公式さんがやるといいかも? まず、JavaScriptのUWPのアプリを作ります。 css, js, WinJS, default.htmlはいらないの…

特定サイトを閲覧するためのアプリを作る「Life with Windows 10 Mibileを題材に」

UWP

(*´ω`*) どなたか「Life with Windows 10 Mobileビュアーアプリ」とかWindows 10 Mobile用に作ってくれないかなあ。。。ポソリ— Life with W10M 編集部 (@Life_w10m) 2016年3月16日 こんな呟きもあったので、簡単にですが、こういうアプリを作る方法を書いて…

UWPでEntity Framework 管理外のオブジェクトを変更監視に追加する

UWP

一旦DBからとってきたデータを暫く手元に置いておいて、後で更新したいということってありますよね。Entity Frameworkのデフォルトの挙動だと、DbSetから取得したデータに対する変更は監視して、いい感じにSaveChangesのときにDBに反映してくれます。 ただ、…

UWPでEntity Framework 追加・更新・削除

UWP

コードファーストでのテーブル定義もなんとなくわかったので、追加・更新・削除でもしてみたいと思います。 基本的な流れは、変更操作をした後SaveChangesメソッドを呼び出すという流れになります。SaveChangesを呼び出すとEntity Frameworkが、それまでの変…

UWPで画像ビューワー

UWP

UWPでMVVMが~とか考える前に初心者にとってもとっつきやすい(とっついたあとはガンバ!)というのを紹介したいと思います。 ということで、UWPアプリで簡単な画像ビューワーを作ってみましょう! プロジェクトの作成 プロジェクトの新規作成でVisual C# → …

UWPで音声認識

UWP

UWPで音声認識をするには、SpeechRecognizerクラスを使います。 使い方は非常に簡単でインスタンスを作って、CompileConstraintsAsyncメソッドを呼び出します。そのあと、音声認識をしたいタイミングでRecognizeAsyncかRecognizeWithUIAsyncを呼び出します。…

UWPでEntity Framework OneToOne

UWP

先日OneToManyやったので今日はOneToOneをやってみたいと思います。 こんな感じのクラスを定義します。 public class Person { public int Id { get; set; } public string Name { get; set; } public PersonDetail Detail { get; set; } } public class Per…

UWPでEntity Framework OneToMany

UWP

単体のテーブルの定義ではなく、テーブル間のリレーションの定義の仕方です。これもOnModelCreatingで指定します。例えば以下のような感じのクラスがあったとして public class Person { public int Id { get; set; } public string Name { get; set; } publ…

UWPでEntityFramework 2種類のコードファーストでのモデル定義方法

UWP

Entity Frameworkには、アノテーションでクラスに属性をつけてDBの定義を行う方法と、ContextクラスのOnModelCreatingメソッドでModelBuilderクラスを使ったFluentAPIの2種類の定義方法があります。 なんとなく、流れを見てる感じだとModelBuilderを使った定…

UWPでSQLiteを使う 準備編

UWP

UWPでのデータベースといったらSQLiteといった感じです。小規模なら、クラスのインスタンスをそのままJSON.NETでさくっとシリアライズ・デシリアライズでいいですが、データ量がちょっと多くなってくると、いつ終了してもいいように備えないといけないUWPで…

UWPでマイクから録音したい

UWP

MediaCaptureクラスを使ってやることが出来ます。 まず、MediaCaptureクラスの初期化処理が必要になります。OnNavigatedToあたりに書くといいでしょう。 private MediaCapture MediaCapture { get; set; } protected override async void OnNavigatedTo(Navi…

UWPで予定を追加したりしたい

UWP

UWPでは簡単に予定を追加したり削除したりできます。 AppointmentManagerクラスに各種メソッドがあります。 ShowAddAppointmentAsync : 予定を追加 ShowRemoveAppointmentAsync : 予定を削除 ShowAppointmentDetailAsync : 予定の詳細 ShowEditNewAppointmen…

ネットワークの接続状態を確認する

UWP

UWPでインターネットの接続状態を確認するには、NetworkInformationクラスを使います。 NetworkInformationクラスのGetInternetConnectionProfileでインターネット接続へのConnectionprofileクラスが取得できます。これに対して、GetNetworkConnectivityLeve…

UWPで印刷

UWP

基本的にWindows 8系の頃と変わってません。 OnNavigatedToで印刷系各種準備を行います。一見無意味に見えるPrintDocumentSourceの取得も意味があるので写経しましょう。 private PrintDocument printDocument; private IPrintDocumentSource printDocumentS…

UWPでユーザー名を取得する

UWP

Win8系の頃はUserInformationっていうクラスで取れてたんですがWin10では非推奨になったんですね。知りませんでした。 ということでWindows.System.Userクラスを使ってユーザー名を取ります。 手順としては、User.FindAllAsyncでユーザーを取得して、GetProp…

UWPでWin2Dを使ってオフスクリーンに描画する

UWP

画面に表示しない状態で描画したいときもあると思うのでやってみました。 手順としては、CanvasDevice.GetSharedDevice()でCanvasDeviceを取得して、それをもとにCanvasRenderTargetを作成します。CanvasRenderTargetができたらCreateDrawingSessionでCanvas…

UWPでWin2Dで描いた画像を保存しよう

UWP

こんな感じでいけました。 CanvasがCanvasControlの変数になります。 var picker = new FileSavePicker(); picker.FileTypeChoices.Add("png", new List<string> { ".png" }); var file = await picker.PickSaveFileAsync(); if (file == null) { return; } var size</string>…

PrismのViewModelでイベントの購読解除などの後始末をするタイミング

PrismのViewModelには画面遷移してきたタイミングで呼ばれるOnNavigatedToと画面から離れるときやサスペンド時に呼ばれるOnNavigatingFromメソッドがあります。ページが有効な間はイベントを購読したいというケースでは、OnNavigatedToでイベントの購読を行…

UWPで画像に文字を描いたりする

UWP

画像を表示するだけなら簡単なんですが、これに文字を描いたりとかするとなるとちょっとめんどうになります。 Win2D使うとお手軽にできるらしいので挑戦。 NuGetでWin2Dで検索してWin2D.uwpをインストールします。 XAMLに以下のようにCanvasControlを追加し…

UWPで画像を開いて表示しよう

UWP

FileOpenPickerとBitmapImageを使うことで簡単にできます。 表示だけならね! var picker = new FileOpenPicker(); picker.FileTypeFilter.Add(".jpg"); picker.FileTypeFilter.Add(".jpeg"); picker.FileTypeFilter.Add(".png"); var file = await picker.P…

UWPで色付きTextBlockを作ろう

UWP

Textプロパティに所定の書式に従った文字列突っ込んだらいい感じに色つけて表示してくれるTextBlockみたいなのが欲しくなることってないでしょうか。 そんな時は、TextBlockを1枚ラップしたカスタムコントロールかユーザーコントロールを作ると捗ります。今…

UWPで𩹉のような4バイト文字を扱う

UWP

Vistaからでしょうか。追加された4バイト文字とか2バイトに入りきらない文字たち。こいつら、stringとcharではうまく扱えません。 例を見てみましょう。 こんなXAMLを用意します。

UWPでTextBlock内にリンクを仕込む

UWP

TextBlockはTextプロパティに文字列を指定する以外に、InlinesにRun(テキスト)やHyperlink(名前の通りリンク)を埋め込んで、単純なテキスト以上の表示をすることが出来るようになっています。 例えば以下のようなXAMLを定義して

UWPでファイルのドロップをしたい

UWP

以下のような感じでいけます。 まず、ドロップのターゲットにAllowDropプロパティをTrueにします。そしてDropOverイベントでドロップされたときの見た目を調整したりします。そして、Dropイベントで、イベント引数のDataViewプロパティのContainsメソッドで…

UWPでPrismを使ったプロジェクトを単体テストする

PrismUnityApplicationなんかを継承してると、単体テストに失敗します。このIssueですね。 github.com Issueにある通りAppクラスにBindableAttributeを付ければ単体テストが実行できるようになります。 using Prism.Unity.Windows; using System.Threading.T…

UWPで単体テストプロジェクトを使おう

UWP

UWPでの単体テストの使い方を簡単に紹介したいと思います。 UWPでは、単体テストも実態はUWPアプリとして実装されていたりします。 とはいっても使い方は他のプラットフォームと同じです。テスト対象のプロジェクトを含むソリューションにUWPの単体テストプ…

ListViewItemで選択されたときはマウスオーバーで色を変えたくない

UWP

ということもありますよね?(ない?) ListViewItemのテンプレートをいじればできます。 ただ、ListViewItemのテンプレートをコピーして編集しても、ListViewItemPresenterとかいうのがあるだけの小さなテンプレートでカスタムしようがありません。 ListVie…