SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Workflow Foundation 4が導く新しい開発スタイル

非常に簡単! 自作アプリでのワークフローデザイナー利用

Workflow Foundation 4が導く新しい開発スタイル(3)

ダウンロード WF4_3_VB.zip (38.6 KB)
ダウンロード WF4_3_CS.zip (28.3 KB)

アクティビティのツールボックスアイコン

 先ほどのサンプルでは、WriteLineアクティビティをコードによりツールボックスに登録を行いました。その際にToolboxItemWrapperクラスのコンストラクタで、アクティビティの型のみを指定する方法を利用していますが、オーバーロードされた他の方式では、ツールボックス上での表示文字列やアイコンを指定することができます。

サンプルコード(Visual Basic)
'サンプル表示
wfDesign.Load(New Sequence)
Dim tlCategory As New Toolbox.ToolboxCategory("CodeZine")
tlCategory.Add(New Toolbox.ToolboxItemWrapper(GetType(WriteLine)))
wfToolbox.Categories.Add(tlCategory)
Dim tlCategory2 As New Toolbox.ToolboxCategory("WF4")
‘文字列を指定する
tlCategory2.Add(New Toolbox.ToolboxItemWrapper(GetType(Assign), "値の設定"))
‘アイコンファイルと文字列を指定する
tlCategory2.Add(New Toolbox.ToolboxItemWrapper(GetType([While]), "WF4BITMAP.bmp", "Whileループ"))
wfToolbox.Categories.Add(tlCategory2)
サンプルコード(C#)
//サンプル表示
wfDesign.Load(new Sequence());
var tlCategory = new System.Activities.Presentation.Toolbox.ToolboxCategory("CodeZine");
tlCategory.Add(new System.Activities.Presentation.Toolbox.ToolboxItemWrapper(typeof(WriteLine)));
wfToolbox.Categories.Add(tlCategory);
var tlCategory2 = new System.Activities.Presentation.Toolbox.ToolboxCategory("WF4");
//文字列を指定する
tlCategory2.Add(new System.Activities.Presentation.Toolbox.ToolboxItemWrapper(typeof(Assign), "値の設定"));
//アイコンファイルと文字列を指定する
tlCategory2.Add(new System.Activities.Presentation.Toolbox.ToolboxItemWrapper(typeof(While), "WF4BITMAP.bmp", "Whileループ"));
wfToolbox.Categories.Add(tlCategory2);
ツールボックスの表示
ツールボックスの表示

 このようにツールボックス上の表示を指定することができますが、アイコンの画像については注意する必要があります。コンストラクタを利用して指定するのは、アイコン画像のファイル名であり実行時のパスを意識する必要があります。なおアイコン画像として推奨されるサイズは16x16ピクセルであり、それより大きいサイズで画像を用意すると上記サンプル画像のように文字列とずれた表示となってしまう点も注意してください。

WF4標準アクティビティのアイコン

 WF4標準アクティビティのアイコンについて サンプルプログラムの画面を見て、WF4標準アクティビティであるWriteLineアクティビティのアイコンが歯車になっていることを不思議に思われた方がいらっしゃるかも知れません。Visual Studioのツールボックスで同アクティビティを見ると、アイコン画像が表示されているのですが、リホスティングデザイナとして自作アプリから利用する場合には、アプリ側で表示するアイコンをすべて指定する必要があります。その際に問題になるのが、標準アクティビティのアイコンはどこにあるのか、という点です。

 

 実際には2か所にアイコンリソースは保持されています。1つはMicrosoft.VisualStudio.Activities.Dllで、これはVisual Studioをインストールした環境でのみ利用が許されています。もう一つはSystem.Activities.Presentation.Dllで、こちらは.NET Framework標準のライブラリなので、誰でも利用することが可能です。詳しいやり方については私のBlogに記載してありますので、そちらも参照してみてください。

 ツールボックス上に表示する文字列は自由に設定できますので、ここで見た目で処理をイメージしやすくしておくと、利用する際にとって非常に使いやすいものになると思います。

次のページ
ActivityBuilderによる機能追加

修正履歴

この記事は参考になりましたか?

Workflow Foundation 4が導く新しい開発スタイル連載記事一覧

もっと読む

この記事の著者

小尾 智之(オビ トモユキ)

地方企業に勤めるインディープロレス好きなエンジニア。VB + SQL Server のシステム構築を主な業務としていましたが、元々の性格もあり色々な物に目移り中。Ahf というハンドルネームで所属する北海道の技術コミュニティ CLR/H(http://clr-h.jp) での活動など行っていましたが、最近か...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6729 2012/08/29 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー