パッケージは unvell.ReoGrid.One.Wpf、名前空間は unvell.ReoGrid.Wpf です。 描画は DrawingContext / FormattedTextWpfGraphics)で行います。

導入とサンプルは WPF で始める を参照してください。

構造

ReoGridControlPanel の派生です。グリッド本体は OnRender で描画され、 スクロールバー・セルエディタ・ドロップダウンはその上に子要素として載ります。

座標系

WPF の DIP は 96 DPI 基準であり、コアの論理ピクセルと一致します。そのため WinForms 版にある DpiScale 相当の変換は不要で、モニターごとの DPI は フレームワークが処理します。

罫線は EdgeMode.AliasedSnapsToDevicePixels によってくっきり描かれます。 ブラシ・ペン・書体は凍結してキャッシュされます。

メンバー

WinForms 版と同名・同義です。

分類メンバー
ワークブックWorkbook ActiveWorksheet SetWorksheet LoadWorkbook NewWorkbook LoadJson
選択Selection ActiveCell SelectionChanged
編集BeginEdit CancelEdit IsEditing SetActiveCellInput ほか
履歴Undo Redo CanUndo CanRedo HistoryChanged
表示Zoom ZoomChanged SetFreeze
イベントWorkbookChanged ActiveSheetChanged ContextMenuRequested CellButtonClicked

選択範囲への一括操作も同じ名前で揃っています (選択とアクティブセル)。

印刷

control.Print();
control.Print(new PrintSettings { /* ... */ });

内部で DocumentPaginator を構築し、印刷ダイアログへ渡します。 WinForms 版が PrintDocument を返すのに対し、WPF 版は印刷まで行うメソッドです。

任意の DrawingContext へ描く

control.RenderTo(drawingContext, width, height, pixelsPerDip);

日本語入力(IME)

IMM32 コンテキストを再関連付けして WM_IME_* を受け取る実装になっており、 WinForms 版と同等です。非編集状態のセルで日本語入力を開始すると、その場でエディタが開きます。

WinForms 版との差分

WinFormsWPF
基底クラスControlPanel
DPI 変換DpiScale を適用不要(DIP=論理ピクセル)
ズーム実装RenderScale に乗算ScaleTransform
印刷CreatePrintDocument() を返すPrint() が実行する
描画先System.Drawing.GraphicsDrawingContext

次に読む

ページの内容は役に立ちましたか?