トップ回答者
TextBoxで読み取り専用(IsReadOnly="True")のとき、文字を選択して日本語入力すると該当部分が消える

質問
-
皆さんこんにちは。Silverlight2での開発をしているのですが
以下の現象について、どなたかシンプルな解決策をお持ちでしたら、教えていただけませんでしょうか?
(現象)
TextBoxコントロールでIsReadOnly="True"の状態で配置します。
既に入力されている文字は、選択できても書き換えることはできないはずですが
文字を選択し、IMEオンの状態で日本語入力しますと、入力確定した時点で、元の選択していた文字は消えてしまいます。
単に解決するのであれば、TextChangedイベントを取って、文字を上書きすれば良いのですが
使用しているTextBoxコントロールの数が多く、できるだけシンプルに対処できればと思います
どうかお知恵をお貸し下さい。
よろしくお願いいたします。2009年5月25日 7:42
回答
-
私もSL2でこの問題に悩まされましたが、
以下の方法で解決致しました。
1:xamlのほうで、各TextBoxコントロールに「IsTabStop="False"」を追加します(タブキーで遷移しないようにします)
ここから少々面倒かも知れませんが…
2:TextBoxを完全に覆うようにRectangleコントロールを置きます。
3:xamlのほうで、配置したRectangleに「Opacity="0"」を設定します。
3の手順でコントロールが散在し、あちらこちらにある場合は少々面倒ですが、固まっている場合などは一気に覆えるので有用かもしません。
もし、ログオンユーザによって切り替えたい場合は…例えば3のRectangleに対して「RectangleHide」というIDを割り当て、
コードビハインド側(xaml.cs)で
if( xx==yy)
{
RectangleHide.Margin=hoge;(ご存知とは思いますがhogeにはマージンの値が入ります)
}
という制御も使えるかと思います。
あと…余談になりますが、SL2 BetaでのデザインとSL2 RTWでのデザインを比較すると、
若干Marginにズレがありますので、ご注意下さい。- 回答としてマーク すがっと 2009年5月27日 11:48
2009年5月26日 5:40
すべての返信
-
これのことかな?
対策・回避策までは言及されていませんが…。
http://social.msdn.microsoft.com/Forums/ja-JP/silvelightdotnetja/thread/ece7afe1-7a04-4a69-8332-c994ed371922
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。2009年5月25日 21:51 -
私もSL2でこの問題に悩まされましたが、
以下の方法で解決致しました。
1:xamlのほうで、各TextBoxコントロールに「IsTabStop="False"」を追加します(タブキーで遷移しないようにします)
ここから少々面倒かも知れませんが…
2:TextBoxを完全に覆うようにRectangleコントロールを置きます。
3:xamlのほうで、配置したRectangleに「Opacity="0"」を設定します。
3の手順でコントロールが散在し、あちらこちらにある場合は少々面倒ですが、固まっている場合などは一気に覆えるので有用かもしません。
もし、ログオンユーザによって切り替えたい場合は…例えば3のRectangleに対して「RectangleHide」というIDを割り当て、
コードビハインド側(xaml.cs)で
if( xx==yy)
{
RectangleHide.Margin=hoge;(ご存知とは思いますがhogeにはマージンの値が入ります)
}
という制御も使えるかと思います。
あと…余談になりますが、SL2 BetaでのデザインとSL2 RTWでのデザインを比較すると、
若干Marginにズレがありますので、ご注意下さい。- 回答としてマーク すがっと 2009年5月27日 11:48
2009年5月26日 5:40 -
すがっと様、Azulean様残念ながらSilverlight3 Beta1では引き続き再現するようですね…Beta2か正式版に期待となります。う~ん…1年ほど前にBeta2で実装したときにMSとやり取りを行っていて、そこで現象を指摘したはずなんですがね~。実際Opacity=0にしたとはいえ、ビルド上はもう1個コントロールが増えるわけですから…容量、重さとかはコーディング手法もそうですが、コントロールの数にも比例するはずなので例えば本当に複雑に色々絡み合った画面の場合、都度こんな対応していたらパフォーマンスの劣化が懸念されます…(幸い私のところは1つでしたけど)2009年5月28日 0:31