読者です 読者をやめる 読者になる 読者になる

かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

「Thumb コントロールで Photoshop のナビゲーターを再現する」をWinRTでやる場合

@Grabacr07さんの素敵な記事! Thumb コントロールで Photoshop のナビゲーターを再現するgrabacr.net WinRTでやるときはこうだよっていうのをちょっとだけ。主にScrollViewerがいけてない部分を補足するだけです。ScrollViewerのScrollChangedイベントはWin…

Windows ストアアプリで、筆圧を取る方法

今日の小ネタです。 筆圧を取るには、Pointer系のイベントでイベント引数のGetCurrentPointを呼び出して、その戻り値のProperties.Pressureで取得できます。 private void Grid_PointerMoved(object sender, PointerRoutedEventArgs e) { // 0~1の間で筆圧…

WindowsストアアプリでUIの要素の高さとかが取れるタイミングで一回だけ処理をしたい

Loadedだとまだなんですね。 public MainPage() { this.LayoutUpdated += this.MainPage_LayoutUpdated; } private void MainPage_LayoutUpdated(object sender, object e) { this.LayoutUpdated -= this.MainPage_LayoutUpdated; // ここで処理をする } ふ…

ストアアプリでListViewに左右のスワイプ処理を追加するという記事が面白かったのでReactivePropertyを使って書いてみた

元ネタ めとべや東京 #7で登壇してきましたその1 ストアアプリでListViewに左右のスワイプ処理を追加する - shinji-japanのブログ めとべや東京 #7で登壇してきましたその1 ストアアプリでListViewに左右のスワイプ処理を追加する - shinji-japanのブログ 面…

Windows store appで共有コントラクトに対応する

久しぶり過ぎて忘れてたのでメモです。 まずは、こんな感じでDataTransferManagerのDataRequestedイベントを購読しておく。 var manager = DataTransferManager.GetForCurrentView(); manager.DataRequested += this.ShareDataRequested; そうすると共有ボタ…

WinRTのStreamとDataReader, DataWriterって使いにくいよね!

.NETのStream系に慣れてるせいか、とても癖があるように感じてしまうWinRTのStream。ちょっと使ってみたいと思います。 まず、ファイルにデータを書き込むところから。 ファイルに書き込む処理には便利な機能があって、書き込みをトランザクションとして扱っ…

AppBarがあることを教えてくれるバーの作り方

というサンプルコードをコードレシピにアップしました。 AppBarがあることを教えてくれるバーの作り方 in C#, XAML for Visual Studio 2013 意外と簡単ですね。

ユニバーサルWindowsアプリでPrismとReactivePropetyを使った状態で中断処理へ対応する

Json.NET使えば意外と簡単にできました。Json.NET偉大。 ユニバーサルWindowsアプリでPrismとReactivePropetyを使った状態で中断処理へ対応する in C# for Visual Studio 2013

SettingsFlyoutをViewModelから制御したい

SettingsFlyoutをViewModelから表示したいときにつかえるBehaviorのサンプルをコードレシピにアップしました。 MVVMパターンでSettingsFlyoutを出す in C# for Visual Studio 2013

FlyoutをMVVMのViewModelから制御したい

ということありますよね? そういう時に便利なBehaviorのコードサンプルをアップしました。 MVVMパターンでFlyoutを出すのに便利なBehavior in C#, XAML for Visual Studio 2013

Prism for Windows Runtimeを使ったODataの更新アプリサンプル

どうだろう? Prism for Windows Runtimeを使ったODataの更新アプリサンプル in C#

ユニーバサルWindowsアプリのPrism for Windows RuntimeでViewのマッピングとViewModelのマッピングのカスタマイズ方法

Prism for Windows Runtimeでは、標準でViewの型はViews名前空間におかないといけないとか、ViewModelはViewModels名前空間に{Viewの型名}ViewModelで置かないといけないとかルールを持っています。 実はこのルールは別のものに置き換えることが可能です。と…

ユニバーサルWindowsアプリのPrism for Windows Runtimeで中断処理への対応

中断処理ってめんどくさいですよね…。ということで楽に対応するためのコード例をコードレシピにアップしました。 ユニバーサルWindowsアプリのPrism for Windows Runtimeで中断処理への対応 in C# for Visual Studio 2013

ユニバーサルWindowsアプリでPrismを使って入力値を検証する

ということで、連日書いてるコードレシピにソースをアップしました。 ユニバーサルWindowsアプリでPrismを使って入力値を検証する in C#, XAML for Visual Studio 2013

時間の経過とともに自動で切り替わるFlipViewのサンプルを公開しました

先日Behaviorのコードだけのせてたやつですがコードレシピのほうに全体をのせました。 以下のURLから確認できます。 自動でめくれるFlipViewのサンプル in C#, XAML for Visual Studio 2013

FlipViewの上下移動のボタンをクリックしたときにTappedイベントが発生してしまうのをどうにかしたい

表題の通り、FlipViewのTappedイベントで画面遷移を行う処理を書いていたら、マウスのときにFlipViewに表示される上下移動のためのボタンをクリックしただけで画面遷移するようになって悩んでました。 同じ問題に悩んでる人が海外にもいたみたいで話題になっ…

HubSectionのヘッダーのグリフを消したい

Hubコントロールは便利なのですが、HubSectionのヘッダーに何か操作をするコントロールを置こうとすると反応してくれません。 IsHeaderInteractiveをTrueにすると反応するようになるのですが、今度はマウスオーバーとかで色がついたり>みたいなグリフがつい…

ストアアプリの単体テストプロジェクトで出力ディレクトリにコピーしたファイルを読み込む

サンプルデータとかを読み込みたいらしいです。 例えばテストプロジェクトに、TextFile1.txtという名前のファイルを作って中身を以下のようにします。 Hello world コンテンツにして、出力フォルダにコピーするようにプロパティを構成します。 このファイル…

****Selector改良

改良といっても、本家のつもりんがちゃんとしたやつのコードを載せてくれた&そっちのほうが強力なので、そっちを使うといいとおもいます・・・! ***Selector を実装したくないので実装してみました - tmytのらくがき 私のやつは、XAMLの階層が深くなってだ…

Windows RuntimeのXAMLで、型に応じてDataTemplateを選択したい

id:tmytさんのアイデアです。 DataTemplateSelectorを実装して、状況に応じてDataTemplateを何個かの中から返すというのはよくやると思います。今回は、これの汎用実装的なかんじです。型名をキーにデータテンプレートを管理するという発想です。 /// <summary> /// D</summary>…

Windows ストアアプリでマークアップ拡張作りたい・・・!(作れません)

オワタ。 というのでは何なので、1つだけ残された拡張の道を歩んでみようと思います。最近まで存在を知らなかったCustomResourceというマークアップ拡張があります。こいつは、デフォルトでは動作しないかわりに、自分で独自の実装を差し込むことが出来るよ…

WinRTのAPIをデスクトップアプリから使う 8.1版

Windows 8.0のころとそんなに変わりありませんでした。 デスクトップ アプリからのWinRT API利用 | ++C++; // 未確認飛行 C ブログ 8.0の頃はプロジェクトファイルに8.0と書いてたけど8.1にします。プロジェクトをアンロードして下記の内容を最初のPropertyG…

めとべや東京 #4の資料公開。「ユニバーサルWindowsアプリ入門」 #めとべや東京

今回は人数が70人超えててびっくりしました。緊張緊張…。 資料はいつも通りSlideShareにアップロードしました。フォントが崩れるので現物をDLしてみるのが個人的にお勧めです。 20140531 めとべや東京4 ユニバーサル アプリ入門

Windows store appとWindows Phone appでPrism for WinRTを使う

ユニバーサル Windows アプリを作るときに問題になるのは、両方に対応したライブラリじゃないと使えないという点です。PrismAdapterは、ちょっと無理やりにWindowsストアアプリにしか対応していないPrism for WinRTをPhone対応して両方で使えるようにしたも…

PrismAdapter 0.1.10-beta2をリリースしました

NuGetから-Preつけてインストールできます。 NuGet Gallery | PrismAdapter 0.1.10-beta2 今回は、起動時に書く処理をすっきりさせました。PrismAdapterBootstrapperのインスタンスはUIスレッド内で1つじゃないといけないのですが、そこらへんを面倒を見るよ…

PrismAdapter 0.1.10-beta1をリリースしました

PhoneでもstoreでもPrism for WinRTを使いたい人のためのライブラリを更新しました。今回の更新は、DIコンテナのUnityがPhoneに対応するバージョンを出してきたので、それに対応しました。 それに伴い、内部でかかえていた電話用のUnityのアセンブリを取り除…

Windowsストアみたいなメニューの出し方(未完全)

ちょっと未完全ですが、それっぽい感じに近づいてきたのでここらへんで一度放流。 Windows ストアのメニュー 新しいWindowsストアが、アプリバーを無くしてきました…。まるでメニューみたいなものが画面上部についてます。初期のWindowsストアアプリの審査で…

Windows ストアアプリのボタンのマウスオーバー時の色をカスタマイズする方法

あれカスタマイズできないんですよね、なかなか。 ということでコードレシピにコードをアップしました。 Windows ストアアプリのボタンのマウスオーバー時の色をカスタマイズする方法 in C#, XAML for Visual Studio 2013

Universal Windows app入門 表という名前でKindle本出してみました

表題の通りです。 Amazon.co.jp: Universal Windows app開発入門 表 電子書籍: 大田 一希: Kindleストア 表があるということは裏もある予定です。とりあえず、試し読みで目次は確認できるので興味があるかたは試してみてください。表紙はちょっとぐちゃっと…

東北行く人は東北さくらトリップ入れてもいいかも?あと興味深い実装も?

MVPの初音さんが作った東北さくらトリップというアプリがあります。 Windows ストア の Windows 用 東北さくらトリップ アプリ このアプリ名前の通り東北の桜の名所+アルファの情報を表示してくれるアプリです。 このアプリの説明を簡単にすると、桜の見どこ…

ユニバーサルWindowsアプリでコード共有の方法などあれこれ

花粉がつらい今日この頃です。 Sharedプロジェクト まずは基本です。Universal Windows appでは、SharedのプロジェクトにおいたコードはWindowsストアアプリとWindows Phone アプリで共有されます。 このときXAMLもC#も共有されます プラットフォーム固有のX…

ユニバーサルアプリのプロジェクトでページやクラスを追加しようとしたときにシステムエラーが出た場合の対処法

システムエラーというダイアログと、詳細なエラーログは、ここに出したよっていうダイアログが出て既存のソースはいじれるけど、新規追加ができないという悲しい状態になりました。 なんか一時フォルダ的なのを消してやろうと思って以下のフォルダを消したら…

Universal Windows appで同じページで電話とパソコンの見た目を切り替える方法

といったらVSMしかないでしょう。強引に#if~#endifで。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundatio…

ストリーミングのAPIにPostでアクセスするとき

HttpClientのPostAsyncだとStreamを全部読み終わるまで帰ってこないみたいです。 そんなAPIって何?っていうとTwitterのこれとかがそうみたいです。 POST statuses/filter | Twitter Developers そんなときはPostAsyncじゃなくて、もう一段抽象度の低いSendA…

Twitterにログインするまでの道のり(OAuthなんて嫌いだ!)

いい時代になりました。 id:neueccさんの、AsyncOAuthを使えば簡単にTwitterの認証を突破できる…。が!!Twitter初心者なんで使い方がよくわからなかったのでメモっておきます。 アプリの登録 Twitterの開発者向けサイトでログインします。 Twitter Develope…

Windows 8.1でもNavigateメソッドの引数に渡せる型は決まってる

SuspensionManagerやPrismのSessionStateManagerがページの遷移の履歴を中断状態時に復元するときにFrameクラスのGetNavigationStateに依存しているのでNavigateメソッドでページ間で引き渡しできる型は以下のものだけです。 string char numeric GUID 本当…

Windows 8.1 Update Pro + ADでサイドロード可能に!?

これはうれしい。 Windows 8.1 Update: Sideloading Enhancements クラシックUIと新しいUIがシームレスになったWindows 8.1 Update - PC Watch ADがなくても100$ですむってありがたい。

ユニバーサルアプリで国際化対応

ユニバーサルアプリで、Sharedプロジェクトで共有可能なのはC#やXAMLだけではありません。リソースも共有できます。Stringsフォルダにja-JPというフォルダとen-USというフォルダを作って、その中にResources.reswというファイルを作ります。 Hoge.Shared en-…

Prism for Windows RuntimeをUniversal appで使えるようにしてみました

Prism for Windows Runtimeって個人的に結構気に入ってて、Universal appでも使いたい…!と思うのですが、いかんせんフットワークが重く感じてしまうんですよね、Prismのチーム。なのでUniversal appが発表されて数日でPrismも対応しました!とかいう感じは…

Visual Studio 2013 Update 2 RCでプロジェクトテンプレートのフォルダ構成が変わった

今までWindows ストアアプリのプロジェクトテンプレートやアイテムテンプレートを追加しようと思ったら以下のフォルダにつっこんどけばOKでした。 ドキュメントフォルダ\Visual Studio 2013\Templates\ProjectTemplates\Visual C#\Windows Store アイテムテ…

Windows ストアアプリで引っ張って更新(未完成)

エロリジェクトで有名なしんじさんが引っ張って更新の方法をBlogに書かれてました。 ストアアプリでListBoxを引っ張って更新 - shinji-japanのブログ ただ、この方法だとUIの仮想化が働かないような気がするんだけどどうだろう?ということで、これとは別に…

Universal Windows appを見てみた

先日、//build/のキーノートで個人的には一番ヒットだったUniversal Windows appが気になったので、早速Windows 8.1 Updateを入れてVisual Studio 2013 Update 2 RCを入れて試してみました。既に拡張機能からUniversal Windows appのサンプルコードもインス…

GridViewの選択色をデータに応じて変える方法

コードレシピにサンプルをあげました。データによって選択時の色を変える方法です。以下のようなイメージになります。 GridViewの選択時の色をデータに応じて変える方法 in C#, XAML for Visual Studio 2013

ボタンのダブルクリックを抑止したい

前回は、ControlTemplateで頑張りましたが、今回はBehaviorにしてみました。個人的には、こっちのほうが好きですね。Behaviorの設置忘れがあったときにチェックするのがめんどくさそうですが…。 using Microsoft.Xaml.Interactivity; using System; using Sy…

ボタンのダブルクリックを抑止したい

決済ボタンとかみたいに二重で走ると困る処理は、基本サーバーサイドでがっちりガードするのが基本ですが、クライアント側でも二重で走らないように、ボタンを押せなくするというのはユーザーに変なエラーメッセージを出さないという目的のためには、やって…

VisualStateManagerでの状態切り替えがAppBarにも効くか試してみた

結論 効きました。 サンプル 動作 AppBarの一番右のボタンを押すとボタンが3個になったり2個になったり切り替わります。 これはアプリ内に定義しているVisualStateで制御しています。 内容 BlendでVisualStateを以下のような感じに定義しています。 VSMでは…

ObservableCollectionとReadOnlyObservableCollectionの同期

ReactivePropertyのAPIに依存してますが、こういうのを用意しておけばいい感じ?? public static class ObservableCollectionExtensions { public static IDisposable ConnectToReadOnlyCollection<TType, TResult>( this ObservableCollection<TType> self, out ReadOnlyObservabl</ttype></ttype,>…

Visual Studioからデザイン時のDataContextを設定する方法

今までは、Blendのデータタブから設定するか、手書きXAMLするしかないと思ってました。ですが、今日Visual StudioのBindingのダイアログを開いてよく見てみると… DataContextがマークアップで設定されていません。 デザイン時のDataContextは、オブジェクト…

Windows ストア アプリのプレーンなプロジェクトテンプレート

Windows ストアアプリのプロジェクトを作るときに、標準のテンプレートで一番プレーンなやつを選ぶとCommonフォルダの中のクラスは生成されません。 あとから、基本ページを追加したら作成されるんですがApp.xaml.csにSuspensionManagerを使った復元処理とか…

WindowsストアアプリプログラミングTipsというサイト

日本初のWindows ストアアプリのプログラミングのTips集としてまとまったものといったら以下の本なのは自明なんですが・・・。 Amazon.co.jp: Windowsストアアプリ開発のレシピ110: 大田 一希, 和田 健司, 津守 優: 本 使えるTipsもあるとは言えWindows 8を…