マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

XAMLの書き方(1)の続き。

ビルティング ブロック クラス

WPF / Silverlightは、Windows Formsとは全く異なるUIサブシステムであるが、
類似のビルティング ブロック クラスが使用されているため、よく似たコードでプログラムを記述することができる。

Applicationオブジェクト

WPF / SilverlightにはWindows フォームと同様に Applicationオブジェクトが存在する。

画面の起動

<Application x:Class="WpfApplication1.App"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  StartupUri="Window1.xaml">
  <Application.Resources></Application.Resources>
</Application>

イベント

Applicationオブジェクトには様々なイベント処理を実装することができる。

Application.Propertiesプロパティ

Window画面

ウィンドウの起動

WPFではWindows Formsと同様にWindow 画面を、以下のように起動できる(「XBAP」を除く)。

プロパティ

Windowには、以下のようなプロパティを設定できる。

ナビゲーション フレームワーク

NavigationWindow?画面を作成

NavigationWindow?画面を起動

WPFNavigationWindow?画面を起動する方法について説明する。

Page画面のロード (1)

Page画面のロード (2)

XBAP」、「Silverlight」では、WindowNavigation? / Windowが使用出来ないため、以下の方法で、直接Page画面をロードする。

なお、「Silverlight」では、
デフォルトの初期画面(Application.RootVisual?)が、ユーザ コントロールとなっているため、
通常、ユーザ コントロールにFrameを追加し、Frameでページ遷移させる方法を取る。

Page画面の画面遷移

WPF / SilverlightにおけるPage画面の画面遷移方法について説明する。

Page画面の進む・戻る操作への対応

進む・戻るボタン

Page画面の進む・戻る操作の注意点

その他

NavigationWindow? / Pageのその他のトピック

Win32ダイアログ

メッセージ ボックス

下記のMessageBox?クラスの名前空間は、Windows FormsではなくWPFのものだが、
このMessageBox?クラスのクラス階層を確認するとWPFのアーキテクチャに基づいていないことが確認できる。

コモン ダイアログ ボックス

カスタム ダイアログ ボックス

参考

入力支援

入力支援機能に関する技術要素について説明する。

メニュー・タスクバーとコマンド

実装

説明

参考

ツールチップ

実装

説明

このToolTip?プロパティには、ToolTip?属性に直接文字列で説明文を記述することも可能であるが、
「プロパティ要素構文」を使用して、説明文などの文字列だけではなく、(imageなどの)任意のUI要素も設定可能である。
例えば、以下は、ユーザ コントロールを使用してToolTip?を表示した例である。

参考

IME制御

実装

以下は、IME制御のサンプルである。

説明

イベント ハンドラでのIME制御の動作は、
以下の点が、XAMLによるIME制御の場合と異なる。

参考

デザイナ向け機能

デザイナ向けの技術要素について説明する。

様々なシェイプ

実装

参考

グラデーション

WPF / Silverlightでは、様々なグラデーションをデザイン可能。

実装

トランスフォーム処理

回転、拡大縮小、傾斜、平行移動

アニメーションなど一時効果の追加

※ なお、こちらの「トランスフォーム処理」は「Silverlight」でもサポートされる。

参考

アニメーション

実装

説明

参考

バリデーション

単項目のバリデーション

一覧のバリデーション

フォーカス制御

注意事項

MVVMデザイン パターン

概要

MVVM(Model - View - View Model)モデルとは、
前述の「データ バインディング」の仕組みを活用したデザイン パターンであり、
従来の3層デザイン パターンの「モデル オブジェクト」、「ビュー オブジェクト」に加えて、
「バインディング ソース」である「ビュー・モデル オブジェクト」を新設するデザイン パターンである。

メリット

このデザイン パターンのメリットは、
「モデル オブジェクト」、「ビュー オブジェクト」間の結合部を、
「データ バインディング」による「ビュー・モデル オブジェクト」に限定し、疎結合を実現できる点である。

ガイドライン

なお、MVVMデザイン パターンのためのガイドライン には、以下のものがある。

  1. XAMLで実装できるものは、コードビハインドに実装しない。
  2. 「ビュー・モデル オブジェクト」はDataContext?として「ビュー オブジェクト」に渡す。
  3. 「ビュー・モデル オブジェクト」と「モデル オブジェクト」は、
    「データ バインディング」により結合されるため、「ビュー オブジェクト」には、一切アクセスしない。
  4. 「ビュー・モデル オブジェクト」は、INotifyPropertyChanged?インターフェイスを実装するべき。
  5. 「ビュー・モデル オブジェクト」は、「モデル オブジェクト」をカプセル化することで、
    「ビュー オブジェクト」から、データ ストレージの複雑さを隠蔽する。

参考


Tags: :.NET開発, :UIサブシステム, :WPF/Silverlight, XAML


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS