2

したがって、WPFとSilverlightでは、TextBox.CaretBrushを使用してTextBoxのキャレットカラーを設定できますが、WinRTでは、すべての知恵でこのプロパティを削除したようです。したがって、TextBoxが暗い色の場合、デフォルトではカレットの色が黒になっているため、表示できません。TextBoxの背景色が黒の場合、カレットは完全に存在しなくなります。これは完全に非論理的だと思います。実際的な方法か何かで、カレットの色を変更する方法が必要ですか?

誰かアイデアはありますか?

4

3 に答える 3

3

これは不可能です。フォーカスがある場合は、テキストボックスを明るい背景に切り替えて、カレットが表示されるようにする必要があります。

于 2012-09-11T21:46:43.957 に答える
1

この質問でパーティーに少し遅れましたが、私は同じ問題に遭遇し、簡単な回避策を見つけました。Windows 8.1 RTプレビューで、TextBoxForegroundThemeBrushをオーバーライドすると、TextBoxのキャレットまたはカーソルの色が変わることに気付きました。

<SolidColorBrush x:Key="TextBoxForegroundThemeBrush" Color="#FFFFFFFF" />

通常、StyleとControlTemplateをオーバーライドした場合でも、カーソルは常に黒になります。私はたまたま、Filipが前述したThemeResources.xamlを調べて、これに遭遇しました。これが8.1より前のxamlに当てはまるかどうかはわかりませんが、Microsoftは新しいSDKで多くのことをクリーンアップしたようです。

于 2013-09-21T23:50:29.300 に答える
0

これは、TextBoxの上に透明なキャンバスをオーバーレイし、SelectionStartとGetRectFromCharIndexを使用して座標を取得し、KeyDown、KeyUp、MouseDownで線の座標を設定し、TranslateTransformを使用して移動することで機能します。素晴らしい!

なぜこれを最初に試しなかったのかわかりません。以前にSilverlightとWPFで変換を何度も実行しました。WinRtの微妙な違いが、私をループに陥らせたと思います...

于 2012-09-13T22:53:12.063 に答える