UWP
最近Blog書かないで何してたかというとワードでせっせと書いてました。あんまり日本語のUWPの本がないんで書きましょう!ということで。まずはSlideShareに公開しました。ダウンロードを許可してるので、是非ダウンロードして読んでください。 かずきのUWP入…
Windows 10 MobileをPCにさした状態で、デバイスマネージャーからWindows 10 Mobile Deviceを削除して(なぜか2個できてたので2個とも削除した)もう一度さしなおすとうまくデプロイできるようになりました。 以下のMSDNフォーラムの内容が参考になりました。…
アプリの設定とかはApplicationData.Currentの下のLocalSettingsとかRoamingSettingsとかを使うのが一般的ですよね。ここの設定がアプリのバージョンアップによって非互換が発生してしまった!?というときに使える小技を紹介します。 ApplicationData.Curre…
今日のde:codeのセッションで知ったことをメモしておきます。 UWPでは、以下のプロパティをfalseに設定することでスクリーンショットを取られることを抑止できます。 画面キャプチャされて、機密情報漏えいなくなりますね! // これを入れる ApplicationView…
小ネタです。ViewModelあたりにSelectedIndexというプロパティをはやして、これを一定時間でインクリメントするようにします。 UIスレッド上でやるのがポイントですね。DispatcherTimerかRx使うのがいいでしょう。(RxのInterval使う場合はObserveOnでUIスレ…
ほしいときにぱっととる事はできなさそうです。 ということで、Window.Current.CoreWindowのActivatedイベントでとっておく必要があります。 こんな感じで // どこかでイベントを購読して Window.Current.CoreWindow.Activated += CoreWindow_Activated; // …
基本的な色とかが定義されてるgeneric.xamlですが、こいつをたまに見たいことがあります。 そんなときどうするか? プロジェクトを新規作成してMainPage.xamlのApplicationPageBackgroundThemeBrushでF12を押します。 そうするとgeneric.xamlをさくっと開け…
UWPのListViewって仮想化されますよね? そのとき画面から見えてない領域にどれくらいの要素を生成されるのかという話しですが、これはCacheLengthプロパティで制御できます。 デフォルトは4で、このとき上に表示領域の4個ぶん、下に表示領域の4個ぶん、表示…
Buttonに文字を設定するのにTextじゃないということ。 Contentプロパティに設定しないといけないというやつですね。 ふむふむ、コンテンツね…って覚えたらTextBlockはTextプロパティなのかよ!という理不尽な扱いを受けてしまいます。 これの見分け方なんで…
出来ません。 なので疑似的にやるBehaviorを作ってみました。以下のような感じです。 using Microsoft.Xaml.Interactivity; using System; using System.Reflection; using Windows.UI.Xaml; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Media; name…
選択されてるときには、何かを出したいとか出したくないとか、そういう要件です。 まずは、バインドされてる要素が自分は今選択されているのかどうかを知っておくと話が早くなります。それについては、以下の記事を参照。 blog.okazuki.jp あとは、このIsSel…
Pivotコントロールを使うと、コンテンツを表示するところの左右に余白が作られてしまいます。 こいつを消したい!というときにどうするかというと… 方法1 PivotItemのMarginを0に設定する。 PivotItemの数が固定で、自分PivotItemを置いてるだけならこれがお…
Prism使ってやってみましょう。UWPアプリを作ってPrism.Unityを追加してAppクラスを書き換えます。 XAML側
UWPのバックグラウンドタスクとフォアグラウンドの処理を連携させるために、IBackgroundTaskRegistrationのProgressイベントとCompletedイベントが定義されています。 例えば、TimerTaskという名前のバックグラウンドタスクのProgressイベントとCompletedイ…
そんなときはAppクラスのResumingイベントで処理を行います。 Application.Resuming Event (Windows)
blog.okazuki.jp 初音さんがコマンドの場合のを教えてくれました。InvokeCommandActionを使えばこういう感じでいけます。 VMをコマンドに変更して using Prism.Commands; using Prism.Mvvm; using System; using System.Collections.Generic; using System.C…
blog.okazuki.jp 続きです。 senderのDataContextを引数に渡してくれるようなCallMethodActionを自作すればいいですね。 using Microsoft.Xaml.Interactivity; using System.Reflection; using Windows.UI.Xaml; namespace App9 { public class TransferSend…
ということがしたいとします。 ListViewItemのDataContextは、項目の要素になってるのでひと手間必要になります。 こんな感じのViewModelがあるとして。 public sealed partial class MainPage : Page { public MainPageViewModel ViewModel => this.DataCon…
今ソケット通信がアツイ!! というわけで、バックグラウンドでソケット通信をする方法です。 UWPのソケットのクラスであるStreamSocketクラスはバックグラウンドでソケット通信をする機能があったりします。 バックグラウンド通信の有効化 仮にRuntimeCompo…
@mntoneさんがRefreshableListViewがあることをツイッターで呟いてたので見てみました。実装は置いといて、使うためには自分のプロジェクトに持ってこないといけないですね。ということでもっていこうと思います。 UWPのサンプルのリポジトリをクローンしま…
雪猫さんのところでこんな感じのことをやってました。 [UWP] 要素をソフトウェアキーボードに追従させる | 雪猫ノート こういう感じでUIに閉じた操作ならBehaviorのほうがいいかな?と思ったのでどんな感じなのかというのを。 using Microsoft.Xaml.Interact…
当然っちゃ当然ですが動きました。 HoloLensのエミュレータをインストールすると、以下のように実行の並びにHoloLens Emulatorが追加されます。 これで実行するとい以下のようにエミュレータが起動して、その中でアプリが動きます。 ドラッグで視線みたいな…
Encoding.GetEncodingを呼ぶ前に以下のおまじないを追加しておくことで使うことが出来るようになります。 System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
WPFだとStyleにBinding書けばいけるんですけど、UWPだと出来ない!由々しき事態。ということでUWPだとどうやるかというとListViewとかを拡張してごにょごにょする必要があります。 stackoverflow.com こんな感じでListViewを拡張します。ListViewItemが作ら…
SelectedItemsってDependencyPropertyじゃないっぽいのでバインド出来ないんですよね。ということで、ベタな方法ですがView → ViewModelの1方向でいいなら以下のような方法が使えます。 まず、ViewModelとListViewに表示するアイテムのクラスを作ります。 us…
その1では、CoreWindowのKeyDownを使ってました。 DispatcherのAccelaratorKeyActivatedイベントも使える奴みたいですね。 こっちでやるとTextBoxがフォーカス持っててもEnterとかのイベントが拾えたのでこっちのほうがいいかも。 こんな感じのBehaviorにな…
こんな感じのビヘイビアを定義しておきます。 using Microsoft.Xaml.Interactivity; using Windows.System; using Windows.UI.Core; using Windows.UI.Xaml; namespace App65 { public class KeyEventTriggerBehavior : DependencyObject, IBehavior { publi…
AltキーやCtrlキーやShiftキーなんかが押されてるかというときに使うと思います。 CoreWindow.GetKeyStateメソッドを使います。 var state = Window.Current.CoreWindow.GetKeyState(VirtualKey.Shift); if ((state & CoreVirtualKeyStates.Down) == CoreVir…
ReactivePropertyをUWPとWindows store appを分けて対応しようとして調べてるのでメモっておきます。 Announcing NuGet 3.1 with Support for Universal Windows Platform uapっていうのとwin81でわかれてるんですね。
送信側は簡単にできました。 blog.okazuki.jp ということで、今度は受信側です。 受信側はPackage.appxmanifestでアプリが何を受信できるのか定義する必要があります。宣言タブで共有ターゲットを追加して、簡単な共有の説明と受け付けるデータ形式を入力し…