かずきのBlog@hatena

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

WinRT

複数ListBoxから1つしか選択できないようにする

WindowsストアアプリのListBoxやListViewやGridView(つまりSelectorコントロールを継承したクラス)を複数画面に置いたときに、1つしか選択できないようにする方法のサンプルコードをコードレシピにアップしました。 複数のListBox(GridView, ListView等のS…

ListView(ListBoxも)で単一選択モードのときに項目を追加したときの挙動を変えたい

ListViewのSelectionModeをSingleにした状態で、先頭に要素を追加したりすると、勝手に選択項目にスクロールしてしまいます。 場合によっては嬉しいのかもしれないですが余計な動作と感じることもあるので、OFFにしたい…!と思って調べたら、そういうプロパ…

Windowsストアアプリでデザインモードかどうか知りたい

知ってしまえばなんてことはない。 DesignMode.DesignModeEnabled | designModeEnabled property (Windows) if (Windows.ApplicationModel.DesignMode.DesignModeEnabled) { // デザイン時の処理 } まあ、コードからサンプルデータを機械的に作りたいときと…

GridViewで縦スクロール・横スクロールを切り替える

世間は、Windows Azureの日本リージョンのオープンでにぎわってます・・・!そんなところにふつーのWindows ストア アプリネタです! 久しぶりにコードレシピです。縦長の表示のときと、横長の表示のときとでVisualStateManagerとStyleの差し替えを使って、…

現在押されているキーと修飾キーを取得する

ぱぱっと取れるものなのかしら。と思ってみたら若干めんどくさかった。 現在押されているキー Window.Current.CoreWindowのGetKeyStateで指定したキーが押されたかどうかわかるので、VirtualKey全走査すればいいのか?修飾キーあたり排除してFirstOrDefault…

GridViewの項目でタップしたときのアニメーションを要素によって無効化したり有効化したるする方法

先日、酢酸先生(id:ch3cooh393)に、タップしたときのアニメーション無効化する方法ないの?って聞かれたので、全部無効化してしまいました。コードレシピにコードをあげてます。 Windows 8.1のストアアプリのGridViewでタップ時のアニメーションを抑止する方…

Windows ストアアプリ開発の土台作り

Windows ストア アプリの開発で、今始めるうえで一番無難に便利にはじめれる個人的な考えを書いてみます。 選択するフレームワーク Prism for Windows Runtime(Windows 8.1版) patterns & practices: Prism for the Windows Runtime - Home MS公式のライブラ…

StringInfoのSubstringByTextElementsがWindowsストアアプリでは使えない

がりっちさんに4バイト文字の𩹉(とびうお)を送り付けて、がりっちさんが作ってるTwitterクライアントの文字列処理をばぐらせて遊んでいたら、𩹉(とびうお)問題という名前がつきました。 𩹉(とびうお)問題 - がりらぼ StringInfoクラス使えば便利メソッド…

Windows 8.1用のPrism for Windows Runtime

最近ウォッチしてなかったので気づいてなかったのですが、Windows 8.1に対応したPrism for Windows Runtimeが出てたみたいです。 MSDN Blogs Developing a Windows Store business app using C#, XAML, and Prism for the Windows Runtime (Windows) NuGetで…

Windows ストアアプリのページ間で共通の見た目を作りたい その3

先日は、軽く作っただけですが、ちょっと改良してみようと思います。 Windows ストア アプリでページ間で共通の見た目を簡単に作りたい - かずきのBlog@hatena ページのタイトルをPageTemplateコントロールのプロパティで設定できるようにする 昨日の段階で…

Windows ストア アプリでページ間で共通の見た目を簡単に作りたい

昼間に書き殴ったあれですが、コードに落としてみます。 Windows ストアアプリでページの共通の見た目を部品化したい… - かずきのBlog@hatena プロジェクトの作成 とりあえず、空のアプリケーションテンプレートを作成。したあとMainPage.xamlを消して、基本…

Windows ストアアプリでページの共通の見た目を部品化したい…

すべてのページには、タイトルがあって戻るボタンがあってコンテンツがある。なので、Windowsストアアプリの基本ページとかを作ると自動的に、そこらへんのUIがくっついたものを作成してくれます。 それでも、いいっちゃいいんですが、自分たちでは、こうい…

マルチカラムのアプリをストアアプリで

先日の酷いアプリはあんまりだったので、じゃぁ横スクロールしないように縦スクロールをいくつも配置すればいいんじゃね?ってことで配置してみました。 今回は、そこまでする必要があったのかというのは謎ですが、カスタムコントロールに配置処理はカプセル…

マルチカラム&縦スクロールのアプリを作ってみよう

初期のころのWindows ストアアプリでは御法度のように書いてあった横スクロールと縦スクロールによる横スクロールと縦スクロールが混在したアプリケーションですが、最近は、結構審査もゆる~くなったみたいなので、操作しにくくなかったらよさそうなのかな…

ストアアプリでのマスター詳細バインディングためしてみた(エラーでないか)

ちょいとCollectionViewSourceを使ったパターンを試してみました。CollectionViewSourceに適当なデータを突っ込みます。 <CollectionViewSource x:Name="source" /> // MainPage.xaml.cs private ObservableCollection<Person> people = new ObservableCollection<Person>(); private void navigationHelper_LoadStat</person></person></collectionviewsource>…

ストアアプリでマスター詳細シナリオの記事を見て

ストアアプリでマスター詳細シナリオ なんとなく、ContentControlのContentへのBindingのPathにCurrentItemを割り当てれば、なんとなく解決しそうなきがしたので後で、ちゃんと検証してみようと思うなどした。DataTemplateSelectorは、まだ未検証だけど、変…

Blendのクラスのサンプルデータをプログラムで機械的に作りたい

Blend for VS2013からWindows ストア アプリでもサンプルデータがサポートされるようになりました。これでWPF, Silverlight(何で切られてしまったん…), Windows Phone(何で日本で出ないの…), Windows ストア アプリで同じようにデザイナ画面でデータを見なが…

#めとべや 東京2で発表してきました 死霊公開

朝起きたら資料がまき戻って焦ったけど、なんとか発表できました。

Yu Gothic Lightをヘッダーのテキストに指定する

とりあえず海外考えないんだったら、こんなXAMLをApp.xamlあたりに書いておけばおk? <Style x:Key="HeaderTextBlockStyle" TargetType="TextBlock" BasedOn="{StaticResource HeaderTextBlockStyle}"> <Setter Property="FontFamily" Value="Yu Gothic" /> <Setter Property="FontWeight" Value="Light" /> </Style>

Blend for VS2013を使ってデザイン時のDataContextを設定する

Blend for Visual Studio 2013 RCでの情報です。 デザイン時DataContext BlendやVisual Studioのデザイナがデータバインディングをするときにデータコンテキストに何があるのかを識別させてやると、プロパティ名とかが画面に表示されてとても捗ります。Blend…

Windows 8.1のストアアプリでマルチビューをサポートする方法のメモ

Windows 8.1 RTM + Visual Studio 2013 RC時点の情報です。 また、試し始めたばっかりで試行錯誤中のメモです。 新しいViewの作成 CoreApplicationのCreateNewViewでいけるっぽい。 var v = CoreApplication.CreateNewView(); これで、CoreApplicationViewと…

Windows 8.1のストアアプリのScrollViewerコントロールでExcelのウィンドウ枠の固定のような機能が追加されてる

DataGrid自作してやるぜ~!(死亡フラグ)が捗るかもしれません。ということでコードレシピにサンプルをアップしました。使いどころはあるよね。多分。 Windows 8.1のScrollViewerで追加されたTopHeader, LeftHeader, TopLeftHeaderプロパティのサンプル

Windows 8.1のストアアプリで追加されたSettingsFlyout

Windows 8.1になってWindows 8の時点で何故なかった…?と言わざるを得ないコントロールがいくつか追加されています。今回紹介するSettingsFlyoutクラスも、その中の1つです。画面の右側からにょきっと生えてくる設定画面を実現してくれます。 コードレシピ…

Windows 8.1のストアアプリのテンプレートの構造

Windows 8.1 RTM + Visual Studio 2013時点の情報です Windows ストア アプリの開発は、テンプレートに従ってやるのが一番の近道です。ただ、Windows 8とWindows 8.1でテンプレートの中身が結構変わりました。どれくらい変わったかというと、Commonフォルダ…

Windows 8.1のBehaviorでTriggerBehaviorを作る時の注意点2

Windows 8.1 RTM + Visual Studio 2013 RCの段階での情報です。 TriggerBehaviorには必ず以下のようなActionsプロパティが必要になります。 public static readonly DependencyProperty ActionsProperty = DependencyProperty.Register("Actions", typeof(Ac…

Windows 8.1のストアアプリのBehaviorでTriggerBehaviorを作る時の注意点

Actionsプロパティは依存プロパティとして実装しましょう。 何故? 依存プロパティとして実装しないと、ActionにBindingが出来なくなります。 例 Actionsが依存プロパティではなく、普通のプロパティの場合、以下のようにActionsの中のActionで{Binding}した…

Windows 8.1のBlendのBehaviorに自作Behaviorを追加する

Blend for VS2013 RCでBehaviorが追加されてテンションが上がってる今日この頃です。Behaviorが追加されたら、自作もしたいという要望ありますよね?ということで、コードレシピにコードをあげておきました。 RCの段階+試行錯誤した結果なので間違ってたら…

Blend for VS2013 RCにXAMLでのBehavior復活!!(ただしWindows 8.1のみのもよう)

Windows ストア アプリを作るうえで最大の不満点。WPF, Silverlight(いい子だったのに…), Windows Phone(一台しか出てないけど…)と歴代のXAMLプラットフォームを触ってきた人にとってはかなりストレスになったと思われるWindows ストア アプリにBehaviorが無…

Windows 8.1のストアアプリで追加されたフライアウトのサンプル書きました

コードレシピにWindows 8.1のストアアプリで追加されたFlyoutのサンプルコードをアップしました。 個人的には、Popupを使って地道にやってたことが、簡単にできるようになってるのでFoyoutコントロールの追加は大歓迎です。ただ、画面右からにょきっとのびて…

Windows 8.1のストアアプリで予定を追加しようとしたけれど

AppointmentManagerというクラスを使うと簡単に予定を追加できそうな様子を醸し出しています。 AppointmentManager class 使い方は簡単。Appointmentクラスに情報をつっこんでShowAddAppointmentAsyncメソッドを呼ぶだけ。コードとしては以下のような感じ。 …

ログインダイアログを出したい

Windows ストア アプリでログインダイアログ出したい!ってときに使えるクラス。 CredentialPicker Class 使い方は結構簡単でした。 var option = new CredentialPickerOptions { AuthenticationProtocol = Windows.Security.Credentials.UI.AuthenticationP…

Windows 8のストアアプリをとりあえずWindows 8.1対応する方法(間違ってた)

訂正 Windows 8.1にリターゲットするだけで、それなりに対応してくれました。 http://www.atmarkit.co.jp/ait/articles/1308/29/news069.html 以下の間違ってる内容は、標準の挙動じゃ満足できない場合にのみやるのがいいかと…。例えば、縦長をデフォルトだ…

パスワードをハッシュ化する方法(.NET 4.5とWinRT) 訂正

コードバグってたので訂正しました。 ストレッチングがかけれてなかった。フィードバックありがとうございました。 パスワードをハッシュ化する方法(.NET4.5 & WinRT)

パスワードをハッシュ化する方法(.NET 4.5とWinRT)

先の記事で、パスワードを平文で保存したらダメという旨を記載したのですが、じゃぁ具体的にどうやるのよ?という例をコードレシピにあげてみました。正直ここらへんは、素人なので突っ込みがあったらコメントくださいm(_ _)mパスワードをハッシュ化する方法…

ItemTemplate内のプロパティをViewStateによって変える

ViewStateに応じてVSMを使ってがらっと見た目を入れ替えるのもいいですが、そうじゃなくて同じGridViewとかで見た目をちょろっと変えたいときとかに使えそうです。コードレシピにサンプルをあげておきました。ViewStateに応じてテンプレートの中の値を変更す…

画面のステートによってGridViewとかのItemTemplateの幅を変えてみたい

Windows 8.1になったらサヨウナラしてしまうApplicationViewのValueプロパティにひと手間かければできますね。 こんなクラスを用意します。 using Microsoft.Practices.Prism.StoreApps; using Windows.UI.Core; using Windows.UI.ViewManagement; using Win…

GridViewでパララックススクロールのような効果を持たせる方法

コードレシピにサンプルコードをアップしました。 まぁ場当たり的に作っていけばこの方法でも結構綺麗なの出来そうな気がします。汎用性を持たせるなら、時間以外のものをもとにアニメーションを組み立てられるストーリーボードみたいなものを作らないといけ…

WinRT XAML Toolkitでチャートを表示する

使い方に関する情報が割と少な目だなと思ったので…。コードレシピにサンプルあげてみました。 使い方がわかると、簡単にできますね!色のカスタマイズ方法とか、いざとなればコントロールテンプレートを差し替えて思いのままに表示とかできるのかな…。という…

Windows ストア アプリでlocalhostに繋がらない?

Visual Studioとかから実行すろと、自動的にlocalhostへループバックできるような設定が裏で追加されるんですね…知らなかった。ということで、業務アプリとかでデスクトップ側の世界と何かやりとりしたいという要望に応えるためにデスクトップ側にWebサーバ…

Prism for WinRTでRSSリーダー作ってみた

Windows 8 ストア アプリ開発入門の中で作ったRSSリーダーと、ほぼ同じものをPrism for Windows Runtimeを使って実装してみました。 Windows8ストアアプリ開発入門作者: 大田一希,和田健司出版社/メーカー: 秀和システム発売日: 2012/10メディア: 単行本購入…

めとべや東京で発表してきました #めとべや

なんか、久しぶりに凄い緊張した今日この頃。 デモでは見たことないエラーもでるし…!ということで、死霊(要出典)はSlideShareに置いておきます。 Prism for windows runtime入門 from 一希 大田 資料の中でも書いてありますがPrismの基本的な機能を書いたサ…

Windows ストア アプリのGridViewのスクロールバーの位置の復元したいよね?

ストアアプリが画面の背後にまわってしまって、中断から終了されてしまったあとに、再度起動されたときに前回終了する前の状態を復元するというのが一般的です。その中で若干厄介なのがGridViewのスクロールバーの位置の復元です。今回はコードレシピにPrism…

Prism for WinRTでフライアウト

標準で何故ないのか疑問なフライアウトですが、Prism for Windows Runtimeでは用意してくれてます。Windows 8.1では用意されてる機能なので寿命は短いですが、今欲しい人にはいい選択しかもしれません。Prism for WinRTでフライアウトを出したい

Prism for WinRTのValidatableBindableBaseで値の検証

Prism for Windows Runtimeで値の検証をするためのクラスの使い方です。 無いとめんどくさいので、こういうのが用意されてるのは有り難いですね!Prism for WinRTのValidatableBindableBase

Prism for Windows RuntimeでViewとViewModelの関連付け

Prism for Windows Runtimeを勉強中です。今回はViewとViewModelのkん連づけ方法について。 規約ベースで紐づけやってるのですが、規約のカスタマイズ方法や、規約を無視ってこういうViewModel設定したいんだ!という方法をちょっくら。Prism for WinRT入門 …

Windows Server 2012でWindows ストア アプリ開発

Windows Server 2012でデスクトップエクスペリエンスを追加でインストールしてVS2012入れてもストアアプリのVSのデザイナが動かない。 あきらめてたら、mfakaneさんが解決策をさらっとつぶやいてたのでメモ。 WinRT の XAML デザイナが UnauthorizedAccessEx…

Prism for Windows RuntimeでHello worldしてみた

7月6日のめとべやで話すためにはじめました。悪くないですねこれ。ということでコードレシピにHello worldをあげてみました。普通に開発するときは、コードレシピの最後に書いてあるようにテンプレートがあるので、それを使って開発しましょう。あくまで、勉…

Windows ストア アプリでのテンプレート コントロール

簡単な例としてNumericUpDownをば…。 ItemsControlをベースとしたやつも調べてやってみたいなぁ。Windows ストア アプリでカスタムコントロール(テンプレート コントロール)の作り方

ASP.NET Web APIでOData + Windows ストア アプリから読み込み

先日、セルフホスト機能を使ってASP.NET Web APIをホストしたプロセスの公開するサービスをWindows ストア アプリから呼び出してみました。今度は、ASP.NET Web APIのOData機能を使ってODataのサービスを作ってみようと思います。 プロジェクト作成 ASP.NET …

#めとべや で「Windows ストア アプリのGridView入門してみた」というタイトルで発表してきまいた

何度発表しても緊張するものですね…。SlideShareだとフォントが…なのでpptをダウンロードしてみるのがおすすめかもです! Windows ストアアプリのgrid viewを入門してみた from 一希 大田