気楽なソフト工房

プログラミングについていろいろな記事を書いています。



mykonos2008

Author:mykonos2008
システムエンジニアとして働いている30代の会社員です。
仕事や趣味でプログラムを書いている方の役に立つ記事を書いていきたいと思っています。
ご意見、ご感想はこちらまで
If you are an english speaker,Please visit my english blog.

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
さて早速、作ってみようとWPFアプリケーションの新規プロジェクトを作成しました。
「Window1.xaml」というファイルがあって、これがWindowsフォームでいうところの「Form1」だな思って、
いつもやっているみたいに「MainWindow.xaml」と名前を変えてしまいました。

Windowsフォームならこれで何もせずに実行できるので、試しに実行してみると、
IOException[リソース 'window1.xaml' を検索できません。]というメッセージが表示されてしまいました。

「なんだなんだ」と思い、あちこち見てみると「App.xaml」というファイルの「StartupUri」という属性に
「Windows1.xaml」とファイル名が記述されていました。あ~これだなと思って変えてみたところ、
実行できました。

おまけに、「MainWindow.xaml.cs」を開いてみると、クラス名はWindows1のままでした。結局は全て
自分で直すということでした。こういうところの改善は今後に期待ということで。(あっ、Expressを使って
いるからかもしれません。)

ちなみに今回作る「仕訳入力」のソフトですが、「Paella(パエリア)」という名前にしました。
スペイン料理のパエリアからとりました。WPFはカラフルなイメージがあるので、この名前にしてみました。

まずは画面レイアウトの設計から始めたいと思います。個別の画面を設計する前に全体構成を考える必要があります。

今回開発するアプリには「振替伝票入力」画面と「振替伝票の参照」画面、「残高試算表」の3つの画面があります。
「残高試算表」はいいとして、「振替伝票入力」と「振替伝票の参照」は同時に開きたい場合があるかなと
思っています。

そうなると、真っ先に「MDIを使おう」と思ってしまうのですが、調べたところWPFはMDIをサポートしていませんでした。。
WPFの開発に携わった方のブログにWPFでMDIが実装されていない理由が書かれています。

それによると、まず、将来的にもWPFにMDIを入れないということではなく、今回は時間が無かったのでみたいなことが
書かれていました。また、MDIと言ってもいろんなものがあるので、みなさんからのフィードバックも欲しいとおっしゃって
います。

で、現状どうしたらよいかということについては、Windowsフォームとの相互運用(ここにサンプルがあります)を使用するか、
または「自分でつくりなさい」(これもここにサンプルがあります。)と言っています。

う~ん、WPFを検証するためのアプリを作ると言っていきなり相互運用に走るのは主旨と違う気がしますし、
そうかと言っていきなりMDIを自作するほど、理解が進んでいるわけではないので、いきなり悩んでしまいました。

とりあえず、「TabControl」を使うことにして、いったんそれぞれの画面をタブのページとして表示することにします。
そして、同時に参照したい場合は、Excelの左右に並べて表示のイメージで行きたいと思います。
ユーザがメニューから左右表示をクリックするとWindow全体を左右に2つに割ってそれぞれにTabControlを貼り付けます。
そして、その中に同時に見たいページをそれぞれ貼り付けなおします。

これぐらいだったら、不慣れな私でも出来そうなので、たぶん。
とりあえず、挑戦してみます。

ではでは、またレポートします。

コメント

他人の制作を見るのは勉強になりますので、今後もがんばって続けて

「リソース 'window1.xaml' を検索できません。」という例外が出てしまって
いるので、何故かなぁ?と調べているところでした。

英語圏の情報で言うと以下のものなのかな、と思いますが、

Problem: "Cannot locate resource 'window1.xaml'.
http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/f50489df-1942-4bda-86d6-30801f25f852/

現状、解決できていません。


私は以下に含まれている WPF サンプルを手当たり次第に読んでるんですけど、
参考に起動させようとすると、上記メッセージが発せられて、画面を確認でき
ないことがあります。

Windows SDK for Windows Server 2008 and .NET Framework 3.5
http://www.microsoft.com/downloads/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&DisplayLang=en


ま、今はソースを読むことが目的ですので、放っておきまます。


ちょうど 1 年前に Windows Form を扱えるようになったばかりですが、
先月から WPF の学習を始めたばかりですので、手間取ってます。
# まだ 1 行も書いてません。

参考に読ませていただきます。

Re: 他人の制作を見るのは勉強になりますので、今後もがんばって続けて

custarさん、コメントありがとうございます。
コメントをいただけるととても励みになります。

私はExpress2008を使ってWPFを始めたので
「Windows SDK for Windows Server 2008 and .NET Framework 3.5」は
インストールしていませんでした。

教えていただいたURLからインストールしてみたら
たくさんのサンプルがあって、びっくりしました。
今まで四苦八苦しながら、コードサンプルをネットから探したりしていたので、
とても役に立ちそうです。

いつくかサンプルを開いて起動してみたのですが、
custarさんがおっしゃっている「リソース 'window1.xaml' を検索できません。」
はまだ起きていません。

もう少し見てみて、何か分かったらブログで報告させていただきます。

今後ともよろしくお願いいたします。






どういたしまして。


私が Windows プログラミングを始めた切っ掛けは、
自分でデザインしたくないからなので、
Windows Form でのプログラミングは楽でした。

しかも、WPF ではデザインも自分で調整しなきゃならないので、
まるで Web の CSS を扱っているような感覚になり、
面倒くささを覚えています。

でも、Form ではできない、ちょっと凝った Control を作ろうとしているので
仕方なく WPF を学習し始めましたが、本当に面倒です。

Re: タイトルなし

手間がかかるという印象は私も同感です。

Windowsフォームのときはひょいひょいとドラッグ&ドロップするだけでしたが、
WPFはまるでメモ帳でWebページを作っているような感覚になります。。

反面、Windowsフォームでは、標準のものからちょっと変えたいと思ったときに、
かなりしんどい目に合うということもありました。

その点においては、私もWPFはWindowsフォームよりも良いなと感じています。

ケースバイケースなのでしょうが、お互いにホストする方法もあるみたいなので
WindowsフォームとWPFを組み合わせるのが現実的なのかなと思っています。

私も ElementHost に切り替えています。
WPF をすぐに使えるようにならないので。

でも、その Host する Element (WPF) を作れないので、困ってます。

特に、Binding の StaticResource やら RelativeSource をどう使えばいいのか、
よく分かっていないのです。

DataGridView のように、DataTable のドラッグドロップで作れるようになるのは、
Visual Studio 2010 からだそうです (MSDN フォーラムからの情報)。

WPF Toolkit のように後出しされるコントロールがあるということは、
「話題作りのために WPF 出したけど、本当は、まだ簡単に使える代物じゃないんだ、ごめんね」
というのが、現状なんじゃないかな?と疑ってます。

Re: タイトルなし

> WPF Toolkit のように後出しされるコントロールがあるということは、
> 「話題作りのために WPF 出したけど、本当は、まだ簡単に使える代物じゃないんだ、ごめんね」
> というのが、現状なんじゃないかな?と疑ってます。

そうですね。私もそれは感じます。
DataGridViewが入っていないことには驚きましたし、
後、ドキュメントがとても分かり辛いことにも手を焼いています。
英語のドキュメントを訳しているのでしょうが、もう少し分かりやすくして
ほしいと思いました。
何回読んでも、依存関係プロパティやリソースの概念がすっきり入ってきません。

私がもう1つ気になっているのは、WPFは元々、画面デザインは開発者がやらない
みたいな話があります。デザイナは「Expression Blend」というデザインツールを
使うので、Visual Studioのデザイナが使いやすくなる必要はないと
考えているのかな?って思ってしまいました。

外向けのWebシステムとかパッケージ製品ならともかく、
業務用システムのデザインにデザイナーと使うケースってあんまりないと思います。


コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://csfun.blog49.fc2.com/tb.php/22-2cf743ec

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。