WPFアプリにおいて、CaretBrushプロパティを使いテキストボックスやリッチテキストボックスのカーソル色(キャレット色)を変更する方法を解説する。
対象:.NET 4.0以降
テキストボックスのカーソル(正しくは「キャレット」または「カレット」という)の色を変えたいと思ったことはないだろうか? 例えば、テキストボックスに背景色を設定したとき、その色によってはキャレットが見づらくなってしまう(次の画像)。キャレットの色を変更できれば見やすくなるだろう。そこで本稿では、WPFのテキストボックスでキャレットの色を設定する方法を説明する。
TextBoxコントロール(System.Windows.Controls名前空間)のCaretBrushプロパティを設定すればよい。なお、RichTextBoxコントロール(System.Windows.Controls名前空間)でも同様である。
単色を設定するには、次のコードのようにする。
<TextBox CaretBrush="Red" ……省略…… />
すると、次の画像のような表示になる。
CaretBrushプロパティはBrush型(System.Windows.Media名前空間)であるから、タイルブラシやグラデーションブラシなども設定できる。次のコードは、グラデーションブラシを設定する例だ。
<TextBox ……省略……>
<TextBox.CaretBrush>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="Red"/>
<GradientStop Color="Orange" Offset="0.3"/>
<GradientStop Color="Transparent" Offset="0.45"/>
<GradientStop Color="Transparent" Offset="0.55"/>
<GradientStop Color="Orange" Offset="0.7"/>
<GradientStop Color="Red" Offset="1"/>
</LinearGradientBrush>
</TextBox.CaretBrush>
</TextBox>
このグラデーションブラシを設定したキャレットは、次の画像のようになる。
本稿では、キャレットの表示を分かりやすくするため、キャレットの幅を変えている。
キャレットの幅はコントロールパネルで設定する。Windows 7、8、8.1では、コントロールパネルで[コンピューターの簡単操作]−[コンピューターの簡単操作センター]−[コンピューターを見やすくします」を開き、そこの[点滅カーソルの太さを指定します]ドロップダウンで幅を選択する(次の画像)。
利用可能バージョン:.NET Framework 4.0以降
カテゴリ:WPF/XAML 処理対象:TextBoxコントロール
使用ライブラリ:TextBoxコントロール(System.Windows.Controls名前空間)
関連TIPS:機種依存文字のJIS90字体とJIS2004字体を同時に表示するには?[3.0、3.5、C#、VB]
Copyright© Digital Advantage Corp. All Rights Reserved.