imani-cの日記

WPFスタイルとテンプレートの本をAmazonで出しました。ちょっととっつきにくいこれらについて知りたいお方は、覗いてみてください。「WPF スタイル」で検索すると、トップに出ます。gRPCの本もあります。「gRPC入門」で検索するとすぐ見つかります。

2022-04-01から1ヶ月間の記事一覧

WPF - Gridの行を非表示にする

WPF

Gridは、画面に整理された感じを与えてくれるコンテナです。 しかし、場合によって一部の行や列を非表示にするということができず、いまいち融通が利きません。ここでは、これを解決するための二つのアイデアを説明します。 行も列も同じなので、ここでは行…

WPF - GridのStarによる高さと幅の指定

WPF

Gridは、コントロールを縦横に配置するのに都合の良いコンテナです。Grid内部を行と列に分けて、それぞれにコントロール配置することにより、複数のコントロールをよく整理された印象を与えるように配置できます。 目次 Gridの行と列の宣言 ピクセル数で高さ…

WPF - TextBlockの語順を変更

WPF

TextBlockに表示されるメッセージ内の語順を変更したいことが時々あります。わかりやすいのは分数の表現です。日本語では「5分の1」と書き、分母が先に来ます。英語では「1 of 5」と書き、分子が先に来ます。 分子と分母がバインド先のプロパティにある場合…

WPF - ContentTemplateSelectorの書き方の工夫と汎用化

WPF

目次 リソースにテンプレートセレクタオブジェクトを作る 汎用的なテンプレートセレクタ リソースにテンプレートセレクタオブジェクトを作る 「WPF - ContentTemplateをデータの値によって自動的に選ぶ」という記事でContentTemplateSelectorについて説明し…

WPF -ほかのファイルで定義したリソースを参照

WPF

WPFで作った画面の見た目をそろえるために使われるのがStyleなどのリソースです。 リソースは、いろいろな場所で宣言できます。 各コントロールの中 トップのコントロールの中(Window・UserControl・Pageなど) 同じプロジェクトのリソース用Xamlファイル …

WPF - TextBlock.TextDecorations

TextBlockやTextBlock.Inlinesに置かれた文字列には、いくつかの装飾を付けることができます。 Overline : 上線 StrikeThrough : 取り消し線 Underline : 下線 Baseline : ベースライン これらすべてを表示した例を掲げます。 <TextBlock Text="String to show" FontSize="40"> <TextBlock.TextDecorations> <TextDecorationCollection> <TextDecoration Location="Strikethrough" /> </textdecoration></textdecorationcollection></textblock.textdecorations></textblock>

WPF - TextBlock.Inlines

TextBlockに表示する文字列は、Text属性以外にInlinesに置くこともできます。Inlinesを使うと、文字列をいくつかの部分に分解して指定することができ、それぞれに色や装飾を付けられます。 もっとも簡単な例は、以下のようなものです。 <TextBlock> String to Show </TextBlock> 一…

WPF - TextBlock

TextBlockは、高々数行までの文字列を表示するためのコントロールです。MSのドキュメントによると、1行の表示には最高、数行までなら高パフォーマンスで表示できるようです。 表示するテキストを指定する 直接テキストを指定することができます。 <TextBlock Text="String to show"/> <TextBlock> String</textblock></textblock>…

WPF - ContentTemplateをデータの値によって自動的に選ぶ

WPF

ContentControlにバインドされているオブジェクトの中身を思う通りの配置や書式で表示させたいときには、DataTemplateを使います。また、それをオブジェクトに応じて変えることもできます。こちらの記事ではバインドされたオブジェクトの種類の違い、つまり…

WPF - ContentTemplateを自動的に選ぶ

WPF

画面上の同じ場所に時により異なる情報を表示することはよくあります。このような時に、複数の表示方法をWPFコードに用意してVisibilityをCollapsedにして切り替えるという方法もありますが、「情報の種類を調べて表示するものを決める」というロジックが必…

Binding.StringFormat

TextBlock.Textに文字列以外をバインドすると、文字列に変換してから表示されます。文字列への変換にはバインド先オブジェクトのToString()が使われますが、書式を指定することもできます。 <TextBlock Text="{Binding CurrentTime}"/> <TextBlock Text="{Binding CurrentTime, StringFormat=Current time \= {0:MM/dd}}"/> StringFormatの有無による違い 目次 書式指定方法 複数個所で同</textblock></textblock>…