UWPのコーディング関連 |
更新日時:2017年08月30日 |
プログラム / WindowsMobile / Windows / ソフトウェア |
ハマったところをメモ ・StorageFolder.GetFolderFromPathAsync() は使っちゃダメ UWPだと基本、パスではなくStorageFolderやStorageFileオブジェクトで扱うんですが、そうは言ってもパスを保存したりしたいので探したところ見つかった関数。 パスからStorageFolderオブジェクトへ変換してくれるので、なんだ、これがあれば全部パスで扱えるじゃん…と思ったのですが、どうもリリースだと動かない? 最初にリジェクトされたのはこれが原因の模様。 じゃぁそもそも何に使うの?って感じなんですが。 そんな関数作らなくていいのに…w 基本、パスはブラックボックス化して、StorageFolderとStorageFileで全て操作するようにする。 保存や復元には StorageApplicationPermissions.FutureAccessList を使う。ただ、これで保存しても何かのタイミングで消えてしまうので今後の課題。 ・規定ではUTF8しか使えないので他の文字コード使う場合はおまじないが必要 System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance); なぜデフォルトで使わせてくれないのか謎。 ・MessageDialogに設定出来るボタンの数 var msg = new MessageDialog("メッセージ", "キャプション"); msg.Commands.Add(new UICommand("はい")); msg.Commands.Add(new UICommand("いいえ")); msg.Commands.Add(new UICommand("キャンセル")); var res = await msg.ShowAsync(); とかすると、モバイルの場合だけShowAsync()で落ちる。 いろいろ調べたらモバイルだとボタンの上限が2個までらしい、冗談だろ…w なので、Yes、No、Cancelのダイアログ欲しい場合はContentDialog使って自作するしかない模様。 複数デバイスが同一コードで動くのはとても素晴らしいのですが、とは言えやっぱりモバイルだけだめとかあるんですね…それなら最初からデスクトップでも動かなくしといて欲しいですわ。 いろいろ癖があるのに情報少なくて度々躓いてます。 出来ること出来ないことがわかってくるともうちょっとスピーディーに進められるんですが。 |
コメント |