どこかのだれかへ

ボク、プログラマ。

WPF

MVVMのViewModelの必要性を感じた

WPF

WPFではMVVM(Model/View/ViewModel)パターンを利用しますが、簡単なツールの場合はViewModelの存在意義があんまり無く、恩恵を受けにくく、その存在意義を忘れがちです。 ViewModelがある理由はView(WPFでいえばxaml関係)に関する都合を吸収するためですが…

BitmapImageをbyte[]に変換する

各フォーマット毎にBitmapEncorderがあるので、コレを使います。 BitmapImage image = /*pngイメージ*/; var encorder = new PngBitmapEncoder(); encorder.Frames.Add( BitmapFrame.Create( image ) ); using( var stream = new MemoryStream() ) { encorde…

子が別のクラスのツリービュー

WPF

WPFにおける、親と子が同じ、再帰的なツリービューの表示は GitHub - tepp91/WPFSampleCollection: Function sample of WPF の中でサンプルとして提示していますが、親と子が別々のクラスの場合は、 <UserControl.Resources> <HierarchicalDataTemplate DataType="{x:Type mdl:Texture}" ItemsSource="{Binding PartList}"> <TextBlock Text="{Binding}" /> </HierarchicalDataTemplate> …</usercontrol.resources>

列挙体をコンボボックスにバインディングする

WPF

タイトルの通り、サンプルも合わせてnoteのほうに上げました。 実はプロ生ちゃん時報作った時に知ったネタですが、会社でWPF触るときに見たくなったので、これを気に記事化させました。 列挙体をコンボボックスにBindingする

ListViewにContextMenuを表示する方法

WPF

WPFでListViewにContextMenuを表示する方法に関して、noteのほうに書きました。 ListViewにContextMenuを表示する

WPFのListViewでダブルクリックでコマンドを実行する

サンプルを作成したのでGitHubにアップした。 GitHub - Tepp91/WPFSampleCollection にあるListViewDoubleClickがそれだ。 当初、ListViewのOnDoubleClickイベントを使おうとしたが、大まかうまくいくもののListViewのヘッダー部分でもダブルクリックに反応…

Adornerを利用して、プレースホルダを表示する

WPF

プレースホルダって検索すると「(UIデザイン的に)プレースホルダは止めておけ」という記事があるけれど、それは気にせず実装してGithubにアップしたので紹介しておく。 GitHub - Tepp91/WPFSampleCollection にPlaceholderサンプルを追加した。 プレースホ…

TreeViewのSelectedItemにデータバインディング出来ない

WPF

掲題の件、どうやらTreeView.SelectedItemPropertyはリードオンリーのようだ。 そしてリードオンリーの依存関係プロパティの場合、データバインディングは出来ないようだ。 MSDNに「読み取り専用の依存関係プロパティ」というトピックがあった。 https://msd…

VirtualizingPanelを実装するにあたり

現在、2Dレイアウトツールのメインである、レイアウト機能を作成中(まだまだ先は長い)。IScrollInfoは「IScrollInfoの実装するにあたり - どこかのだれかへ」を読んで、スクロールすることは出来たので、いよいよ本丸のVirtualingPanelの実装に入る。参考…

IScrollInfoの実装するにあたり

発端はVirtualizingPanelのための実装で、IScrollInfoの実装が必要になったため。 IScrollInfoは、ScrollViewerで論理スクロールを行うためのインターフェースで、Scrollさせたいコントロールが継承して実装する。既存のコントロールではStackPanelなどが実…