2011-01-01から1年間の記事一覧

Q068. View の Window ハンドルを取得するには?

A. 状況によっては Window のハンドルを取得したい場合があります。そのような場合は WindowInteropHelper クラスの Handle プロパティを使えばハンドルを取得できます。 VB.NET Dim helper = New System.Windows.Interop.WindowInteropHelper(Me) MessageB…

Q067. 現在アクティブな Window のインスタンスを取得するには?

A. 以下のようにApplication.Current.Windows コレクションを走査して、アクティブな Window を検索すればいいです。 VB.NET Application.Current.Windows.OfType(Of Window).SingleOrDefault(Function(w) w.IsActive) C# Application.Current.Windows.OfTy…

「今後このダイアログボックスを表示しない」付きダイアログを呼び出す

よく色んなアプリケーションで 「今後このダイアログボックスを表示しない」 チェックボックス付きメッセージボックスを見かけますが、どうやって実装してるんだろうと前から思ってました。実に様々なソフトで見かけるので OS が何らかの API を提供してるに…

Q066. ViewModel のコマンド内でマウスカーソルを変更するには?

A. Mouse.OverrideCursor プロパティを使ってアプリケーションのカーソルを設定できます。 MVVM パターンだと ViewModel から View の操作をしないため、コマンド実行時にどうやって Window のマウスカーソル変更すんだろうとしばらく考えてましたが、いろ…

NetAdvantage Reporting に関する備忘録

プロジェクトで NetAdvantage Reporting を使った帳票を開発中ですが、後で絶対忘れそうなので備忘録としてざっと纏めてみました。チュートリアルじゃなくあくまで自分用の備忘録ですが、NetAdvantage Reporting の情報はネット上まだ少ないようなので、なん…

Q065. 簡単に検証インジケーターを表示するには?

GrapeCity 社の InputMan for WPF に含まれている GcValidationIndicator を使うと簡単です。検証を行う要素名を ElementName プロパティに設定するだけです。 <im:GcValidationIndicator ElementName="GcNumber1"/> 以下、某所に上げたサンプルです。二つの数値コントロールの値を乗算した結果が 12 を超えると</im:gcvalidationindicator>…

郵便番号検索API を利用するサンプル

郵便番号検索API を利用して郵便番号から住所を検索するクラスを考えてみました。 郵便番号検索API は無料のサービスで、個人・法人・商用・非商用問わず利用できるたいへん有難いサービスです。ただし無償で公開されてるサービスですので、継続利用が保障さ…

Q064. 左クリックで ContextMenu を表示するには?

A. Blend SDK の ChangePropertyAction ビヘイビアーを使用します。以下サンプルです。先日のエントリの XAML を改造し、TextBox を Button に変更しています。Button を左クリックすると ContextMenu を表示します。

Q063. WPF でショートカットメニューを表示するには?

A. ContextMenu を使用します。 以下、Livet を使った簡単なサンプルです。TextBox に ContextMenu を設け、右クリックでポップアップを表示、選択したメニューを TextBox に表示します。

Livet で Messenger を使ってみる(その四)

なんか某所で、先日のエントリから話が発展して、かなり盛り上がってた(?)ようなので・・・ コードビハインドがどーのと言ってましたが、本来なら以下のようにすべきで、コードビハインド使う必要ないと思うんですがねぇ・・・。

Livet で Messenger を使ってみる(その参)

本日はさらに踏み込んで、Livet が提供するメッセージングアクションのうち InformationDialogInteractionMessageAction ConfirmationDialogInteractionMessageAction OpenFileDialogInteractionMessageAction SaveFileDialogInteractionMessageAction の四…

Livet で Messenger を使ってみる(その弐)

昨日のエントリーのサンプルではつまらないという貴方に、さらに発展させた使い方を考えてみました。 たとえばこんな感じ。コードビハインドを使わずに、コンボボックスで選んだ操作を ViewModel のコマンド経由で実行します。 まず ViewModel のコードです…

Livet の Messenger クラスを使ってみる

本日のエントリーでは、Livet の Messenger 機能をチュートリアル風に公開してみます。これを使うと、画面の終了・最大化・最小化・標準化を、コードビハインドを全く書かずに操作することができます。今回は Visual Studio と Blend を使っています。Livet …

ガスコンバインドサイクル発電の推進により、原発は完全不要に!(その二)

前回の記事 ガスコンバインドサイクル発電の推進により、原発は完全不要に! の続きです。今回はガスコンバインドサイクル発電の燃料である「天然ガス」について書きたいと思います。 週刊エコノミスト 10月10日 臨時増刊号 「エネルギー大転換 ― 世界の潮流…

Q062. XamDataGrid でセルにボタンを表示するには?

A. スタイルで CellValuePresenter のテンプレートを設定し、表示したい Field の FieldSettings.CellValuePresenterStyle に指定します。

ガスコンバインドサイクル発電の推進により、原発は完全不要に!

「原発を停止すると電力不足が起き、経済活動が停止してしまう」、と推進派はいいますが、とんでもない大嘘ですね。「いつものパン」があなたを殺す: 脳を一生、老化させない食事 (単行本)作者: デイビッドパールマター,クリスティンロバーグ,David Perlmutt…

危険を危険だとはっきり言うのが専門家

ここ最近、原発関連の書籍を読んでいることは先日のエントリーに書きました。で、真剣に考えなければならない話は幾つもあるのですが、昨日東大アイソトープ総合センターの所長である児玉龍彦教授の「内部被曝の真実」を読んでいて、非常に胸を打つ箇所があ…

原発を即時廃止し、ガスコンバインドサイクルに切り替えるべき

#まだ未完成ですが、随時追加・修正しながら公開中です。原発問題につき先日より各方面からさまざまな話を伺い、また自分でも勉強すべく様々な本を読んでみました。 原発のウソ (扶桑社新書)作者: 小出裕章出版社/メーカー: 扶桑社発売日: 2011/06/01メディ…

Q061. XamDataGrid で別の列の値をツールチップで表示するには?

A. CellValuePresenter のスタイルを設定します。以下のサンプルのように、XAML 内で自身のレコードのセルを参照することができます。でも XAML 内で添字も使えたんですね。初めて知った時はかなり驚きました。

開発関連の備忘録

備忘録です。あとで気が向いたら記事に纏めるかもしれません。 Style.BasedOn プロパティを使えばスタイルの継承ができる。 関連記事 :WPFにあってSilverlight 2 Betaにないシリーズ「スタイルの継承」と「型指定によるスタイルの適用」 PasswordBox.Passwo…

WebBrowser.NavigateToString を使ったビヘイビアを用意する。

先日のエントリ 「WPF で Google Map API を使ってルート検索してみる(Livet版)」 では、View のコードビハインドで WebBrowser.NavigateToString メソッドを呼び出してたわけですが、昨日 MSDN フォーラム見てたら、以前私がビヘイビア書いてたスレ見つけま…

WPF で Google Map API を使ってルート検索してみる(Livet版)

昨日 Google Map API でルート検索するサンプルを公開しましたが、本日はさらに一歩進め、先日のサンプルの Livet 版を作ってみました。 Livet は純国産の MVVM インフラで、先日最新版 0.98RC が公開されました。前のバージョンから大きく変わったとのこと…

WPF で Google Maps API を使ってルート検索してみる

昨日も Google Maps API の記事を書きましたが、今日は一歩進めて WPF のWindow 上でルート検索するサンプルを作ってみました。先日から Google Maps API の調査をしてますが、スクリプト書いてるだけじゃ面白くないので、WPF の勉強も兼ねて MVVM パターン…

Q060. WPF で Google Map API を使うには?

A. WebBrowser コントロールを使います。以下は NavigateToString メソッドを使ったサンプルです。Google Maps API の使い方については以下の記事を参考にさせて頂きましたが、たいへん判りやすいサイトで助かりました。 関連記事 :Google Maps入門(Google…

Q059. XamDataGrid に DataTable をバインドするには?

A. DataSource プロパティに DataView をバインドします。現在アクティブなデータは ActiveDataItem プロパティで取得・設定できます。以下、ViewModel を使った簡単なサンプルです。Model がないのでいわゆる MVVM パターンではありませんが、バインディン…

Q058. XamDataGrid でセルに収まらない値をツールチップで表示するには?

A. いささか凝った方法ですが、MultiDataTrigger と IMultiValueConverter を使って設定します。

Q057. XamDataGrid でユーザーが列の表示状態を任意に設定できるようにするには?

A. FieldLayoutSettings.HeaderPrefixAreaDisplayMode プロパティを FieldChooserButton に設定します。 <igDP:XamDataGrid Grid.Row="1" BindToSampleData="True" > <igDP:XamDataGrid.FieldLayoutSettings> <igDP:FieldLayoutSettings HeaderPrefixAreaDisplayMode="FieldChooserButton" /> </igDP:XamDataGrid.FieldLayoutSettings> <…</igdp:xamdatagrid>

Q056. XamDataGrid で列を固定表示するには?

A. Field クラスを使って設定します。 データソースの列とバインドさせるには Field.Name プロパティに列名を指定します。Name プロパティに列名指定するのってやや気持ち悪い仕様になっててベンダーさんも認識してるようですが、WPF 1.0 くらいからの仕様…

Q055. XamDataGrid で「エリアごとのグループ化」機能を無効にするには?

A. XamDataGrid の目玉機能の一つで、これはかなり強力な機能なんですが、シーンによっては無効にしたいケースもあります。その場合、XamDataGrid.GroupByAreaLocation プロパティを None に設定します。 <igDP:XamDataGrid BindToSampleData="True" GroupByAreaLocation="None" /> 標準では「エリアごとのグループ化」機能が有効に</igdp:xamdatagrid>…

Q054. XamDataGrid で掛線を指定するには?

A. Style で CellValuePresenter.BorderThickness プロパティと CellValuePresenter.BorderBrush プロパティを設定します。以下のサンプルの場合、上下左右すべての BorderThickness を同じにすると、左右で重なるところが重複して描画されてしまい見苦しく…