かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

XAML

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で入れるには以下のようにしてリリース前のパッケ…