WPF

Q128. IE ベースでない Browser コントロールは存在しないか

A.昨日のエントリでは WPF のWebBrowserコントロールについて書きました。これ IE7という非常に旧いバージョンをベースにしてるので、ページによってはレイアウトが大きく崩れます。それを回避するのがレジストリ編集な訳なんですが、標準コントロールにも…

Q127. WebBrowser コントロールの IE のバージョンを最新にしたい

A.WPF の WebBrowser コントロールのIEのバージョンが 7 なのは有名なようですね。現状ではレジストリを編集するしか手はないようです。以下の記事では、レジストリの編集方法を紹介されてます。 関連記事:WebBrowser コントロールで使われている Internet…

Q124. XamDataGrid で絞り込み表示されてるレコードのみ抽出する(其の弐)

A.以前のエントリで、XamDataGrid で絞り込み表示されてるレコードのみ抽出する方法を紹介しましたが、これ一つ落とし穴がありまして、要素の描画タイミングによるのか、正常にレコードを取得できない場合があったりします。関連記事:Q124. XamDataGrid で…

Q126. XamDockManager のレイアウトを保存・読み込み・初期化したい

A.XamDockManager はペインを一元管理できるコントロールでして、ペインのドッキングやフローティング、タブや左右・上下の配置などを自在に配置可能なコンテナコントロールです。Visual Studio のIDE をイメージすれば判りやすいと思います。 ユーザーがペ…

Q110. XamDataGrid でユーザーが設定したレイアウトを保存したい(其の参)

A.以前、XamDataGrid でユーザーが操作した列の移動や並び替え、グループ化やソートを次回起動時用に保存したい場合、SaveCustomizations メソッドやLoadCustomizations メソッドを使えば、レイアウトの保存・読み込みが可能だという記事を公開しました。関…

Q110. XamDataGrid でユーザーが設定したレイアウトを保存したい(其の弐)

A.以前、XamDataGrid でユーザーが操作した列の移動や並び替え、グループ化やソートを次回起動時用に保存したい場合、XamDataGrid.SaveCustomizations メソッドやXamDataGrid.LoadCustomizations メソッドを使えば、レイアウトの保存・読み込みが可能だとい…

Q125. コントロールの Visiblity プロパティに bool 値をバインドしたい

A.いまさら感がひしひし漂うネタですが、まあコンセプトが周回遅れブログのため、その辺りは気にせずスルーでお願いできればと思います。 コントロールの Visiblity プロパティに、ビューモデル側の bool 型プロパティをバインドさせたいシーンは多いと思い…

Q124. XamDataGrid で絞り込み表示されてるレコードのみ抽出する

A.昨日の記事に引き続き、またまた XamDataGrid ネタです。 XamDataGrid で、フィルターで絞り込まれているレコードのみを抽出には、各レコードの IsDataRecord プロパティで判定し抽出する必要があります。 以下、サンプルコートです。 前回もそうでしたが…

Q123. XamDataGrid で表示されている内容をそのまま EXCEL に出力したい

A.くそ忙しかったため、かなりご無沙汰しておりましたが、久々の XamDataGrid ネタです。 XamDataGrid で表示されている内容を Excel に出力したい場合、DataPresenterExcelExporter クラスの Export もしくは ExportAsync メソッドを使うといいです。この…

二種類の XamComboEditor

またまた備忘録です。Infragistics WPF で提供されてる XamComboEditor、これ実は二種類あるの知ってました?Infragistics.Controls.Editors.XamComboEditorとInfragistics.Windows.Editors.XamComboEditorです。 どういうコンセプトで二種類の XamComboEdit…

Apllication が終了しているか判定する

ちょっと多忙につき更新さぼってましたが、久々のエントリ、ちょっとした備忘録です。Application.Shutdown したのに処理が走っちゃうコードを見つけたので、Application の終了をどこで判定する調べてました。で、結論はこれ。 Shutdown 実行しても処理が続…

高DPI環境における Windows Forms アプリ終了のお知らせ

ここ最近、私が携わっているソフトを Surface Pro 4 で使いたいというお客様が増えてまいりました。マイクロソフト Surface Pro 4(i7/256GB/16GBモデル) Windowsタブレット[Office付き・12.3型] (キーボード別売・シルバー) TH2-00014出版社/メーカ…

DataPresenter.Field クラスのインターフェイスがいつの間にか変わってた

XamDataGrid のカラムの外観や動作を定義する Filed クラスですが、細かい設定する場合 FieldSettings プロパティで定義するため、要素のネストが深くなるといういささか面倒な仕様のため、も少しなんとかなんないかなと、いつも思っておりました。例えば、…

Q122. App.xamlで定義したリソースを動的に変更したい(バインディング編・その弐)

A.アプリケーションクラス自体をカスタマイズしリソースにバインドさせることで、アプリケーションリソースの動的変更が可能になります。 昨日のネタを基に ViewModel を使わずリソースとバインドするようできないか、少し考えてみました。

Q121. App.xamlで定義したリソースを動的に変更したい(バインディング編)

A.アプリケーションリソースにビューモデルを用意し、リソース定義にバインドさせることにより動的変更が可能になります。 先日のネタを基に ViewModel を使ってバインドできるようならないか、少し考えてみました。

Q120. App.xamlで定義したリソースを動的に変更したい

A.App.Current.Resources で、App.xaml に定義したリソースを参照できるので、リソースの中身をコードビハインドでごっそり入れ替えてしまえばいいです。 久々のWPFネタです。最近某所から要求があったので、少しサンプルを考えてみました。

Livetによる画面遷移と選択要素受け渡しのサンプル

MVVMパターンでよく問題となるのが、画面遷移 の問題です。 単一画面であれば、View と ViewModel をバインド機構を使って疎結合にできるため、なんら問題は生じませんが、画面遷移を行う場合、ViewModel から Window を起動すると View - ViewModel 間で密…

Q119. ビューモデルの状況に応じて動的にメニュー構成を変更したい

A.DataTrigger を使って、MenuItem.ItemsSource の中身をごっそり入れ替えてしまうという手があります。これならコードビハインドは不要です。 例えば以下のようなメニュー構成になっているとします。 これを状況により以下のような構成にしたり こんな構成…

ListView 間でドラッグドロップして項目を移動するサンプル (ビヘイビア版)

昨日のエントリの発展版です。ネットを検索してると WPF のドラッグドロップでビヘイビアを使用しているサンプルがかなり目につきます。やはり汎用性を考えるなら、イベントハンドラでゴリゴリコーディングするより、ビヘイビアにした方が遥かに便利だと思い…

ListView 間でドラッグドロップして項目を移動するサンプル

昨日のエントリの続きで、今回は ListView です。前回は単一の ListBoxItem を移動するだけでしたが、今回は複数のアイテムを移動する処理を考えてみました。で、色々考えた結果こんな実装になりました。 今回の実装で少し考えさせられたのが、 IDataObject.…

ListBox 間でドラッグドロップして項目を移動するサンプル

ドラッグドロップは殆ど実装したことがなかったので、各所のサンプル見ながら勉強中です。ひとつのアイテムを移動させるだけなら、PreviewMouseLeftButtonDown・DragOver・Drop の三つのイベントだけで実装できることがわかった。 以下サンプルです。

Q118. ListBox の項目にボタンを表示し、ビューモデルのコマンドとバインドさせたい

A.DataTemplete を使ってリストボックスの項目表示をカスタマイズし、コマンドをバインドします。DataTemplete は XAML 系アプリケーションならではの機能で、Windows Forms では実現不可能な極めて柔軟なインターフェイスを提供します。以下、MSDNの関連記…

ドロップダウン付き TextBox 修正版

昔のエントリで公開したドロップダウン付き TextBox、ドロップダウンの復帰制御がいささか気に入らなかったため、少し修正しました。以前はTogguleButton をクリックするとドロップダウンが表示されっ放しでしたが、今回はフォーカスが離れると自動的に閉じ…

Q117. ActiveReports WPF 用 Viewer をカスタマイズしたい

A.例えば ActiveReports Viewer に PDF出力用のアイコンを追加したいというニーズがあるとします。この場合、コードビハインド内で Viewer のビジュアルツリーを辿って ToolBar のインスタンスを取得、PDF用のボタンを追加するという方法もありますが、あま…

ActiveReports for .NET 7.0J を WPF で使うチュートリアル(Visual Basic 編)

#2014/12/10 : VBユーザー向けに大幅に編集しなおしました。 GrapeCity さんの ActiveReports for .NET 7.0J を WPF で使うチュートリアル、VB編です。基本的に前回と内容は同じで、コードのみVBで実装します。グレープシティ ActiveReports for .NET 7.0J …

ActiveReports for .NET 7.0J を WPF で使うチュートリアル

GrapeCity さんの ActiveReports for .NET 7.0J を WPF で使うためネットで資料を探してみたら見つからなかったので、さくっとチュートリアルっぽいものを書いてみようと思います。グレープシティ ActiveReports for .NET 7.0J スタンダード 1開発LP出版社/…

WPF で画面とユーザーコントロールの連携を考えてみた

ちょっと某所で質疑があがってたので、MVVMパターンにおける画面とユーザーコントロールの連携について考えてみました。 お題をかいつまんで言えば、こんな話です。 メインウィンドウと二つのユーザーコントロールが存在し、それぞれプロジェクトを分けて管…

VisualBasic で Livet の LivetWeakEventListener を使う

先日来、某所で WeakEvent パターンの話題があがってます。そこで Livet の弱参照パターンの話もちょろっとしてみたわけですが・・・でも VBユーザーだとどうだろう・・・VBユーザーの多くはラムダ式馴染みないし、EventHandler をパラメータで渡すコードが…

Q116. Form.ShowDialogのパラメータに Window を渡したい

A.全くニーズはないと思いますが(汗)、とりあえず備忘録としてエントリを起こしました。Forms から WPF への移行期間に、同一プロジェクト(もしくはソリューション)内で Form と Window が混在する場合があります。*1 親 Window から子 Form を ShowDialog …

Q115. ソリューション全体でアイコンを統一管理したい

A.ソリューション全体で画面のアイコンを統一管理したいというニーズがあったため、この記事を起こしました。 まず単一の画面であれば、以下のようにWindow.Icon プロパティにパスを指定するだけで事足ります。 <Window Icon="/hoge.ico" /> 少し大きなプロジェクトになると、アイコン</window>…