WPFといえばMVVM。ただWPFのMVVMは補助ライブラリがないと開発がキツイなどと言われます。何がどうキツイのか、ライブラリが何を提供してくれるのかを学習してみました、初心者の私がこれを読む初心者の方にわかるよう説明してみたいと思います。 補助ライブラリとしては、MVVM Light toolkit, Composite ApplicationGuidance for WPF(旧PRISM), Livet が有名です。MVVM Light toolkitは非常に多くダウンロードされているという噂、Composite ApplicationGuidance for WPFはLightToolKitに比べてパフォーマンスが良くないという噂、Livetは国産のMVVMライブラリで細部のサポートが行き届いたライブラリという噂みたいです。 0.ライブラリについて 今回の目的はこれらライブラリ

.NET開発者中心 厳選ブログ記事 MVVMパターンの常識 ― 「M」「V」「VM」の役割とは? ―― 「the sea of fertility」より ―― 尾上 雅則 2011/05/18 「.NET開発者中心 厳選ブログ記事」シリーズでは、世界中にある膨大なブログ・コンテンツの中から、特にInsider.NET/.NET開発者中心の読者に有用だと考えられるブログ記事を編集部が発掘・厳選し、そのブログ記事を執筆したブロガーの許可の下、その全文を転載・翻訳しています。この活動により、.NET開発者のブログ文化の価値と質を高め、より一層の盛り上げに貢献することを目指しています。 MVVM(Model-View-ViewModel)パターンに関する知見があちこちに散らばっているように見えるので、そろそろまとめてみることにしました。この記事は、MVVMの基本的な考え方・実装方法などを把握されて
データとなるモデルと、表示を行うビューを結び付ける「データ・バインディング」と、データの表示をカスタマイズできる「データ・テンプレート」について解説。 連載目次 今回および次回の2回に渡り、ビューとモデルの疎結合を実現するための仕組みとして、データ・バインディングとコマンドという2つの機能について説明する。まず今回は、これらの機能の背景にあるGUIアプリケーションに対する要件と、データ・バインディングについて説明を行っていく。 ■GUIアプリケーションに対する要件 WPFのデータ・バインディングやコマンドといった仕組みを説明する前に、そもそもGUIアプリケーションに対して、どのような要件があるのかを整理してみよう。ここでは、実装上で満たすべき要件として「ビューとモデルの疎結合」と、GUIアプリケーションに求められる機能(の中で、今回はデータ・バインディングに関係する部分)を紹介する。 ●ビ

kazoo04 Advent Calendar 6日目です(6日目とは言っていない) みんな気合の入った記事を書いているので、頑張って書かないとなぁって書いていたらどんどん期限をオーバーしてしまって…ごめんなさい。 kazoo04氏の周りの人はみんなMacだったりLinuxだったりを使っていてあんまりWindowsプラットフォームに興味がないかもしれませんが、僕が書けそうな内容がこれしかなかったので、今回はWindowsのGUIプログラミング、WPFについてのおはなしです。 ちなみに: 今アツいかもしれないWindows Store AppはXAMLとC#を用いて書きますが、WPFじゃありません(重要)。ですが、概念は一緒です。(裏を返せば、概念以外は大きく違いますので気をつけてください……) これ、XAML Advent Calendarに書くべきだったかなぁ。 WPFは、むずかしい?

WPFの重要度は上がってきましたが、学ぶ順番と言う意味では、Windowsフォームアプリケーションを先に学ぶほうがよいと思います。 [違いの件] <Windowsフォームアプリケーション> C#プログラミング技法でプログラミングを行なうものです。 <WPF> C#プログラミング技法と、XAMLでのプログラミング技法を組み合わせて、プログラミングを行なうものです。 (Windowsアプリケーションソフト的な面もありますが、スクリプト言語的な面も取り入れている) [XMLの勉強の件] WPFに組み込まれているのは、XML と言うよりも、XAML です。 確かに、XAML は、XML で作られた拡張版XML です。 しかし、XAML で何かを行なう場合は、XML の入門書で勉強したことと言うよりも、XAML の入門書で学んだことを活用します。 なお、XAML の入門書は、以前にありましたが絶版に

これは、XAML Advent Calendar 2013 の 1 日目のエントリーです。 WPF (またはWindows ストア アプリ) におけるコレクション コントロール (ItemsControl) の外観をカスタマイズするための基礎として、4 つのプロパティの使いどころを紹介します。 前置き WPF でアプリ開発をしていると、そのデザイン性の高さを生かし、WPF っぽい (?)UI のアプリを開発したくなりませんか? なりますよね! 既定のデザインで開発しても、データ バインディング等々の恩恵を多分に受けられるので十分素晴らしいのですが、「そのUI だったらWindowsForms で作れるじゃん」なんて思ってしまったり。 なので、私が WPF アプリを開発するときは、最近の Visual Studio や Zune、GitHub forWindows などに見られるモ

WPFText Measurement Units – WPFTextBlog たとえばWPFで下記のようにTextBlockのフォントサイズを24と指定した場合、Windowsフォームで24ポイントと指定したときとは大きさが異なることに気が付くかと思います。 XAML <TextBlockText="グレープシティ" FontSize="24"/> これは、WPFではフォントサイズを含めたすべてのサイズ指定のデフォルトがデバイスに依存しないピクセルとなっているためです。「デバイス非依存ピクセル(DIU)」については後程解説しますので、まずは単位の指定方法を見てみましょう。 XAMLで記述する場合、下記のように数字の後に単位を付加するだけでポイントやセンチといった単位でサイズを指定することができます。 XAML <StackPanel> <StackPanel.Resources>

連載目次 レイアウト用のパネルに続き、今回は、「ユーザー/アプリケーション間の対話を担う要素」、いわゆるコントロールを中心として、WPFのUI要素について説明していく。 ■コントロール コントロールは、ユーザーとの対話を担う要素で、GUIアプリケーション開発の中心的存在といえる。コントロールは、マウスやキーボードなどのユーザー操作を受け取ったり、処理の途中経過や結果を適宜表示したりするために利用する。 ●コントロールの全体像 まず、コントロールや、関連するUI要素のクラス階層を見てみよう。主要なものをFigure 1に示す。 前回説明したとおり、FrameworkElementクラス(System.Windows名前空間)はWPFのほとんどのUI要素の共通基底となる基礎的なクラスで、Panelクラス(System.Windows.Controls名前空間)は子要素と協調してレイアウトを決定

(これは2013-05-13に書いた故OCNブログの記事を加筆修正したものです)Windowsストア アプリ(Windowsランタイム アプリ、WinRTアプリ)や、Outlook.com、OneDrive(旧SkyDrive)などで採用されている、ModernUI(旧称MetroUI)は、他のMS製デスクトップ アプリでもスタイルとして採用されていて、Visual Studio 2012/2013やOffice 2013はかなりすっきりしたデザインになっています。タイルUIとかフラットUIとかいう呼称もあります。Windows 8のデスクトップ用Win32コモン コントロール自体も、XP/Vista/7のグラデーションや半透明効果を多用した比較的リッチで立体的なLuna/Aeroコントロールとは趣を変えて、シンプルな外観のコントロール(内部名はAero2らしい)になってます。実はI

TextBlockに表示する文字列はプレーンな文字列だけではなく、複数の書式をもった文字列を表示させることができます。 アンダーラインを引くには、<Underline>と</Underline>で文字列をくくります。 ボールドにしたければ、<Bold> と </Bold>でくくります。 Run要素を使えば、背景色、文字色、フォントサイズも変更することができます。 以下、このサンプルのXAMLです。 <Window x:Class="TextBlockFormatedTextSample.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" He

リキッド レイアウト (liquid layout) とは、表示領域のサイズによって動的に表示方法が最適化されるようなレイアウトを指します。 もしレイアウトについてとくに意識せずに固定サイズのアプリケーションを実装してしまうと、 ウィンドウのサイズが小さい場合には一部のコンテンツが隠れたり、 逆にウィンドウのサイズが大きい場合には空白ができたりしてしまいます。 ディスプレイの解像度の制限やユーザーによるウィンドウのサイズ変更など、 表示領域のサイズの連続的な変化に対応しなければなりません。 以下では、XAML 系アプリケーションでリキッド レイアウトを実現するためのパターンと実装例を紹介します。 (1) Grid Grid では、ColumnDefinitions プロパティおよび RowDefinitions プロパティにより、各行・列の幅を指定できます。 固定値のほか、他の行・列との相
1リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く