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

かずきのBlog@hatena

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

XAML

ユニーバサル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 for Windows RuntimeとReactivePropertyで計算機サンプル

今日も今日とてコードレシピにコードをアップしました。 ユニバーサルWindowsアプリのPrism for Windows RuntimeとReactivePropertyで計算機サンプル in C# for Visual Studio 2013

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

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

ユニバーサルWindowsアプリでPrismを使って画面遷移

コードレシピにサンプルコードをアップしました。 ユニバーサルWindowsアプリでPrismを使って画面遷移 in C# for Visual Studio 2013

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

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

自動で切り替わるFlipViewの作り方

こんなBehaviorを作ってぽとっとすればOK public class FlipViewRollingBehavior : Behavior<FlipView> { private IDisposable disposable; public static readonly DependencyProperty IntervalProperty = DependencyProperty.Register( "Interval", typeof(int), typ</flipview>…

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

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

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

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

WPF4.5入門 その55 「Binding その1」

WPFには、見た目とデータを分離して管理するための強力なデータバインディングの機能があります。WPFのデータバインディングは、依存関係プロパティとプロパティの間の同期をとる機能にないります。 単純なBinding データバインディングは、ソースに設定され…

PrismのRegionをなるべく仰々しくない方法で使う

Prismの全機能を使おうと思ったらModule使ったりとか結構だるいです。でも「Regionで画面区切って画面遷移できる機能とかは使いたい。」と思いました。 思考錯誤して出来たのでメモっておきます。 NuGetからのインストール Prism.UnityExtensionsをNuGetから…

WPF4.5入門 その54 「カスタムコントロール」

UserControlで、独自コントロールを作る方法を紹介しましたが、UserControlではできないことがあります。ControlTemplateへ対応です。ControlTemplateへ対応した完全なWPFの独自コントロールを作るには、これから紹介するカスタムコントロールを作成する必要…

WPF4.5入門 その53 「ユーザーコントロール」

コントロールの作成 WPFでは、コントロールの見た目を少し変えたいといった要求は、StyleやDataTemplate、ControlTemplateを使って簡単に実現できます。そのため、Windows Formのころに行っていた、見た目を変えるためのカスタムコントロールの作成は、ほと…

WPF4.5入門 その52 「コントロールテンプレート」

WPFのコントロールは、見た目を完全にカスタマイズする方法が提供されています。コントロールは、TemplateというプロパティにControlTemplateを設定することで、見た目を100%カスタマイズすることが出来るようになっています。 (adsbygoogle = window.adsbyg…

Prism + ReactivePropertyの簡単なサンプル書きました

コードレシピにさくっと。 Prism.Mvvm + ReactiveProperty サンプル in C# for Visual Studio 2013

WPF4.5入門 その51 「リソース」

ここでは、リソースについて説明します。WPFのコントロールには、ResourceDicinonary型のResourcesというプロパティが定義されています。ResourceDicinonaryクラスの中には、画像・文字列・オブジェクトなど様々なものを名前をつけて保持することが出来ます…

WPFでBindingを強制的に評価する

WPFでBindingを強制的に評価したいときってありますよね?(ない?) そんなときはコントロールからBindingExpressionを取得してUpdateTargetメソッド(VMからV側の更新)やUpdateSourceメソッド(VからVMへの更新)を使います。 例えばTextBlock型のtextBlo…

WPF4.5入門 その50 「Style」

Styleについては、「WPF4.5入門 その21 「WPFのコンセプトと重要な機能つまみ食い」 - かずきのBlog@hatena」で簡単に紹介したとおり、コントロールに設定するプロパティの値のセットを集めるためのものです。共通の設定を行うコントロールが多数ある場合は…

WPF4.5入門 その49 「WPFのアニメーション その2」

キーフレームアニメーション これまで説明した型名Animationで指定するアニメーションの他に、WPFでは、キーフレームアニメーションと呼ばれるアニメーションを定義するための型があります。<型名>AnimationUsingKeyFrameという名前で定義されています。サポ…

WPF4.5入門 その48 「WPFのアニメーション その1」

WPFは、アニメーションを組み込みでサポートしています。WPFのアニメーションは、指定した依存関係プロパティを指定した時間内で、指定した変化量で、指定した範囲の値を変化させ続ける仕組みになります。単純なWPFのアニメーションの定義例を以下に示します…

WPF4.5入門 その47 「コンテンツモデル」

WPFの重要なコントロールの1つにContentControlクラスがあります。このクラスは、Contentプロパティに設定された単一の要素を表示するという機能を提供するコントロールです。「WPFのコンセプト」でも紹介しましたが、このコントロールが、要素を表示する際…

WPF4.5入門 その46 「WPFのイベントシステム」

WPFは、イベントも独自の機構を構築しています。WPFのイベントシステムの特徴を説明する前に、なぜその仕組みが必要になるかというシンプルな例を示したいと思います。以下のようにButtonの中にButtonがあるシンプルなケースでのイベントについて考えてみま…

WPF4.5入門 その45 「添付プロパティ」

添付プロパティは、別のDependencyObjectを継承したクラスに対して、任意のプロパティを設定することが出来る機能です。例えば、GridクラスのRow添付プロパティやColumn添付プロパティがあります。これは、Grid内の別コントロールに対して、何行目、何列目に…

拡張されたプロパティメタデータ

依存関係プロパティのメタデータは、PropertyMetadataクラスの他に、PropertyMetadataクラスを継承したUIPropertyMetadataクラスや、FrameworkPropertyMetadataクラスがあります。UIPropertyMetadataクラスは、WPFのアニメーションを無効化にする機能を提供…

WPF4.5入門 その42 「WPFのプロパティシステム」

DispatcherObjectの1段下に継承階層をおりると、DependencyObjectというクラスになります。DependencyObjectは、WPFで使われた独自のプロパティシステムを実装しています。この独自のプロパティシステムのことを、依存関係プロパティと添付プロパティといい…

WPF4.5入門 その41 「DispatcherObject」

コントロールの使い方ばかりを書くのも飽きてきたので趣向を変えていきます。 DispatcherObject WPFでは、他のUIフレームワークと同様にUIを操作するには専用のスレッドから操作をする必要があります。WPFでは、この操作を簡単にするためにDispatcherという…

WPF4.5入門 その40 「Popup、ToolTip、TextBox、Image、MediaElementコントロール」

全然関連性のないコントロールをまとめた記念すべき40回です。 Popupコントロール opupコントロールは、画面上に別ウィンドウとして項目を表示するためのコントロールです。Popupコントロールは、IsOpenプロパティを持っていて、このプロパティの値がtrueに…

WPF4.5入門 その38 「ファイルダイアログ」

WPFは、ファイルを開いたり保存するためのダイアログを提供しています。以下の2つのダイアログがあります。 SaveFileDialog:ファイルを保存するときに使用するダイアログです。 OpenFileDialog:ファイルを開くときに使用するダイアログです。 これらのダイ…

めとべや東京5の発表資料 #めとべや

こんな広いテーマは辛かった…。次はもっとテーマ絞ろうと思った今日この頃でした。 めとべや東京5_XAML

****Selector改良

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

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

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

ItemsControlの劣化版を自作してみる(DataTemplate対応コントロールの作成)

DataTemplateに対応したコントロールの作り方ということで、こちらのサイトを写経させていただきました。 DarksideCookie | Using DataTemplates in custom controls カスタムコントロールの作成 カスタムコントロールを新規作成して、Generic.xamlに適当にS…

WPFのXAMLのTypeConverterお試し

WPFのXAMLではTypeConverterを自作して文字列から、オブジェクトを作るようなことが簡単にできるようになっています。ということで簡単に試してみました。XAMLからオブジェクトへの変換にはTypeConverterクラスのConvertFromメソッドとCanConvertFromメソッ…

System.Xamlを使ったシリアライズ・デシリアライズ

上から順に、単純なデシリアライズ。ローカルアセンブリを指定したデシリアライズ。文字列へのシリアライズ。文字列以外のストリームやテキストライターへのシリアライズです。 using System; using System.IO; using System.Reflection; using System.Xaml;…

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

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

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

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

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

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

Visual Studio 2013 Update2 RTM出ました

DLのURL探してしまったのでメモ。 これでユニバーサルアプリ正式ですね! Download Microsoft Visual Studio 2013 Update 2 from Official Microsoft Download Center

Windows Phone ArchでUniversal Windows app入門というタイトルで話してきました #wparch

Visual Studio Onlineにつないでたせいでオフライン環境でVisual Studioが拗ねてしまってデモがスムーズにいかなかったorz 発表資料は以下になります。 Universal Windows app 入門

ReactivePropertyを.NET 4対応しました

今まで.NET 4.5からだったんですよね地味に。 .NET 4専用のプロジェクトをおこして、そちらにポーティング可能なものだけ移動させて作りました。まだ正式版じゃなくてプレリリースの状態です。なので、NuGetで入れるには以下のようにしてリリース前のパッケ…

ReactiveProperty オーバービュー

最新版は以下のページになります。 MVVMとリアクティブプログラミングを支援するライブラリ「ReactiveProperty v2.0」オーバービュー - かずきのBlog@hatena MVVMとリアクティブプログラミングを支援するライブラリ「ReactiveProperty v2.0」オーバービュー …

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

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

Visual Studio 2013 Update2 RCをあてるべき人 = XAMLエディタがエラー出まくって困ってる人

Visual Studio 2013 Update 2 RCをあてるまで、Prism for Windows RuntimeやMVVM Light(もたぶんそうだと思う)みたいに、ページクラスを独自の基本クラスに置き換えてるフレームワークを使うときに、XAMLのデザイナでXAMLがエラーまみれになるという状況でし…

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

桜がヒラヒラ落ちるアニメーションをXAMLで・・・!

どうやって作ってるのかみつばたんに聞いてみたら作業風景を動画にしてくれました(リクエストした)。 その46:BlendでSakura Falling - atelier:mitsuba これからの時期、アプリのアクセントとしてとてもいいものだと思います。そして、デザイナの人のBlen…

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

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

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

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

なんかプログラミングのきっかけとか、Visual Studio 2013の使い方?的なのを話してきたので資料を公開します

プログラミングのきっかけ プログラミングのきっかけ 自分がプログラム書く源泉ってなんだろう?ということでLTをしました。まぁ、楽しいからですよね。 Visual Studio 2013 でストアアプリ開発の入門的な Visual studio 2013 Overview 気合で作った。資料で…

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

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