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

かずきのBlog@hatena

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

XamDataGridを使ってみた

XamDataGridは、非常に多機能なコンポーネントです。XamDataGridは、http://infragistics.com/DataPresenter名前空間を定義することで使用することが出来ます。通常のXAMLのコレクションを表示する系のコントロールはItemsSourceプロパティにコレクションを…

DataGridComboBoxColumnのItemsSourceのバインド方法

久しぶりのWPFネタです。小ネタ。 DataGridComboBoxColumnクラスを使うと、簡単にDataGridにComboBoxを設定できます。しかし、DataGridComboBoxColumnクラスのItemsSourceプロパティをBindingしようとすると、BindingのSourceがWindowのDataContextではなく…

WPF 4.5 入門のSlideShareの使われ方想定

過去の連載をPDFにまとめてSlideShareにアップしてます。 WPF4.5入門 from 一希 大田 (adsbygoogle = window.adsbygoogle || []).push({}); WPF4.5入門 こいつですが、SlideShareで閲覧してもらうというよりはSlideShareへ飛んで行ってもらってDLしてもらう…

WPF4.5入門のPDF

最後までまとめてアップしました。ひと段落。 WPF4.5入門

WPF4.5入門 その62「まとめ」

Windows Presentation Foundation 4.5入門は、ひとまず終了です。WPFの入門書が少ないというか絶無な日本で少しでも、これからWPFをやろうと思うひとの助けになれば幸いです。 この中で使用しているコードは一部をのぞき以下のGitHubで管理しています。 http…

WPF4.5入門 その61「データバインディングを前提としたプログラミングモデル その2」

前回のアプリケーションはシンプルすぎてModelがありませんでしたが、今度はシンプルな四則演算アプリケーションでModelまで含んだコード例を示したいと思います。MVVMの基本クラスは、Prism.Mvvmのクラスを使用します。 Modelの作成 Modelはなるべくプレー…

WPF4.5入門 その60「データバインディングを前提としたプログラミングモデル」

WPFでは、強力なデータバインディングを活かした設計パターンとしてModel View ViewModelパターンというアプリケーションを設計するうえでの定石となる設計パターンがあります。Model View ViewModelパターンはMVVMパターンと略されます。MVVMパターンは、WP…

WPF4.5入門 その59「Behaviorの自作」

BehaviorやTriggerとActionを使用することで、簡単なロジックがRAD環境で構築できることがわかりました。ここでは、ありもののBehaviorを使うのではなく自作のBehaviorやTrigger/Actionを作成する方法について示します。Behaviorは、コードビハインドに何回…

WPF4.5入門 その58「Behavior」

WPFの標準部品ではないですが、Blend SDK for WPFに同梱されているBehaviorという部品があります。BlendはVisual Studioに同梱されているため、基本的に標準でついていると考えていいライブラリです。Behaviorは、TriggerとAction(WPFの同名の機能とは別物…

WPF4.5入門 その57「コマンド」

WPFには、ICommandインターフェースというユーザーの操作を抽象化する仕組みがあります。ICommandインターフェースは、以下のように定義されています。 public interface ICommand { // コマンドを実行するかどうかに影響するような変更があった場合に発生し…

WPF4.5入門 その56「コレクションのバインディング」

データバインディングでは、ここまで説明してきた単一項目のデータバインディングの他に、コレクションをバインディングすることができます。コレクションのデータバインディングは、IEnumerableを実装したコレクションなら、どれでも対象になります。その中…

WPF4.5入門のPDFを更新しました

WPF4.5入門で書き続けてるWordファイルをPDF化してSlideShareにアップしました。 前回アップしたときよりも80ページちょい増えています。 WPF4.5入門 残りあと少しの予定ですが、とりあえず今の進捗ということで。

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

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

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…

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

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

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入門 その43 「読み取り専用の依存関係プロパティ」

これまで見てきた依存関係プロパティは全て読み書きできるものでしたが、読み取り専用の依存関係プロパティも定義できます。読み取り専用の依存関係プロパティは、DependencyPropertyKeyというクラスを使用します。 読み取り専用の依存関係プロパティの例を…

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

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

WPF4.5入門 その41 「DispatcherObject」

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

WPF4.5入門その40までまとめたPDF作りました

ばらばらの記事だとみるのもめんどくさいのでPDFにまとめました。 SlideShareからダウンロードできます。WPF学習の一助になれば幸いです。 WPF4.5入門

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

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

WPF4.5入門 その39 「情報を表示するコントロール」

Labelコントロール Labelコントロールは、コントロールに対するラベルを表示するコントロールです。LabelコントロールはButtonコントロールなどと同じContentControlを継承しているため、Contentプロパティに任意の値を設定してContentTemplateプロパティを…

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

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

WPF4.5入門 その37 「TabControl」

TabControlは、以下のようなタブで切り替えて複数のコンテンツを表示するUIを提供するためのコントロールです。 TabControlは、ItemsプロパティにTabItemコントロールを指定してタブを作成します。TabItemコントロールは、Headerプロパティにタブのヘッダー…

WPF4.5入門 その36 「Sliderコントロール」

Sliderコントロールは、任意の範囲の数値から1つをユーザーに選択させるコントロールです。デフォルトでは0~10の間の実数を選択する動作をします。以下のようにStackPanel上に置いただけのSliderコントロールの動作を以下に示します。 <StackPanel Margin="5"> <Slider x:Name="slider" /> <TextBlock Text="{Binding Value, ElementName=slider}" /> </StackPanel> 起動直後は、以…

WPF4.5入門 その35 「RadioButtonコントロール」

RadioButtonコントロールは、複数の選択肢の中から1つをユーザーに選択してもらうときに使うコントロールです。RadioButtonコントロールは、デフォルトでは同じパネル(StaciPanelやGridなど)にあるRadioButtonコントロールから、1つだけチェックをつけるこ…

WPF4.5入門 その34 「ListBoxコントロール」

ListBoxコントロールは、1つまたは複数の項目をユーザーに選択させることが出来るコントロールです。基本的な使用方法は、ComboBoxコントロールと同様になります。ItemTemplateによる見た目の設定、ItemsSourceプロパティによる、選択項目の設定、SelectedIt…

WPF4.5入門 その33 「ComboBoxコントロール」

ComboBoxコントロールは、複数の選択肢の中から1つをユーザーに選択してもらうためのユーザーインターフェースを提供するコントロールです。オプションとして、複数の選択肢の中から1つを選ぶか、自由にテキストを入力する方法も提供することができます。 …

WPF4.5入門 その32 「CheckBoxコントロール」

CheckBoxコントロールは、オン・オフ・その他の状態を表すコントロールです。一般的に以下のような見た目をしています。 上記の画面のXAMLを以下に示します。 <StackPanel> <CheckBox Content="オン" IsChecked="True"/> <CheckBox Content="オフ" IsChecked="False"/> <CheckBox Content="その他" IsChecked="{x:Null}" IsThreeState="True"/> </StackPanel> CheckBoxコントロールの代表的なプロパティを以下に示します。 プロパティ …

WPF4.5入門 その31 「ToolBarコントロール」

ToolBarコントロールは、名前の通り、アプリケーションのツールバーを実装するためのコントロールです。ToolBarコントロールは、ToolBarTrayコントロール内に配置する形で実装します。ToolBarTrayには複数のToolBarコントロールを設置でき、ユーザーはマウス…

WPF4.5入門 その30「Menuコントロール」

メニュー系コントロール地味だけど、ちゃんとしたアプリだと使うところですよね。ということで今日は普通のメニューコントロールです。 Menuコントロール Menuコントロールは、Window上部などに表示されるメニュー項目です。一般的にファイル、編集などの項…

WPF4.5入門 その29 「ContextMenuコントロール」

いや長いですね。その28書いてから1年と1月たってました。でもWPFのバージョンは変わらない!! ContextMenuコントロール ContextMenuコントロールは、特定のコントロールに対して固有のメニュー(主に右クリックしたときに表示されるメニュー)を提供するた…

WPF4.5入門 その28 「Calendarコントロール」

Calendarコントロールは、名前の通りカレンダーを画面に表示してユーザーに日付を選択してもらうためのコントロールです。Calendarコントロールの代表的な機能を以下に示します。 表示内容を1か月、1年、10年に設定できます。 複数の日付(単一選択と複数選…

WPF4.5入門 その26 「TreeViewコントロール その2」

(adsbygoogle = window.adsbygoogle || []).push({}); 今回も、前回に引き続きTreeViewコントロールについてみていこうとおもいます。 TreeViewのItemTemplate TreeViewコントロールもDataGridコントロールと同様にItemsSourceプロパティにコレクションを設…

WPF4.5入門 その25 「TreeViewコントロール その1」

1月ほど間があきましたが、RIAアーキテクチャ研究会やめとべやでの発表も終わりひと段落ついたので、ちまちま再開していきたいなと思います。過去記事一覧が長くなってきたので、今回からは末尾にもってくようにしました。 (adsbygoogle = window.adsbygoogl…

WPF4.5入門 その24 「DataGridコントロール その2」

過去記事 WPF4.5入門 その1 「はじめに」 WPF4.5入門 その2 「WPFとは」 WPF4.5入門 その3 「Hello world」 WPF4.5入門 その4 「Mainメソッドはどこにいった?」 WPF4.5入門 その5 「全てC#でHello world」 WPF4.5入門 その6 「WPFを構成するものを考えてみ…

WPF4.5入門 その23 「DataGridコントロール その1」

過去記事 WPF4.5入門 その1 「はじめに」 WPF4.5入門 その2 「WPFとは」 WPF4.5入門 その3 「Hello world」 WPF4.5入門 その4 「Mainメソッドはどこにいった?」 WPF4.5入門 その5 「全てC#でHello world」 WPF4.5入門 その6 「WPFを構成するものを考えてみ…

WPF4.5入門 その22 「Buttonコントロール」

過去記事 WPF4.5入門 その1 「はじめに」 WPF4.5入門 その2 「WPFとは」 WPF4.5入門 その3 「Hello world」 WPF4.5入門 その4 「Mainメソッドはどこにいった?」 WPF4.5入門 その5 「全てC#でHello world」 WPF4.5入門 その6 「WPFを構成するものを考えてみ…

WPF4.5入門 その21 「WPFのコンセプトと重要な機能つまみ食い」

過去記事 WPF4.5入門 その1 「はじめに」 WPF4.5入門 その2 「WPFとは」 WPF4.5入門 その3 「Hello world」 WPF4.5入門 その4 「Mainメソッドはどこにいった?」 WPF4.5入門 その5 「全てC#でHello world」 WPF4.5入門 その6 「WPFを構成するものを考えてみ…

WPF4.5入門 その20 「レイアウトに影響を与えるプロパティ」

過去記事 WPF4.5入門 その1 「はじめに」 WPF4.5入門 その2 「WPFとは」 WPF4.5入門 その3 「Hello world」 WPF4.5入門 その4 「Mainメソッドはどこにいった?」 WPF4.5入門 その5 「全てC#でHello world」 WPF4.5入門 その6 「WPFを構成するものを考えてみ…

WPF4.5入門 その19 「Gridコントロール part 2」

過去記事 WPF4.5入門 その1 「はじめに」 WPF4.5入門 その2 「WPFとは」 WPF4.5入門 その3 「Hello world」 WPF4.5入門 その4 「Mainメソッドはどこにいった?」 WPF4.5入門 その5 「全てC#でHello world」 WPF4.5入門 その6 「WPFを構成するものを考えてみ…

WPF4.5入門 その18 「Gridコントロール part 1」

過去記事 WPF4.5入門 その1 「はじめに」 WPF4.5入門 その2 「WPFとは」 WPF4.5入門 その3 「Hello world」 WPF4.5入門 その4 「Mainメソッドはどこにいった?」 WPF4.5入門 その5 「全てC#でHello world」 WPF4.5入門 その6 「WPFを構成するものを考えてみ…