RenderTargetBitmapを使用してテキストボックスをオフスクリーンバッファにレンダリングしていますが、このテキストボックスにテキストを入力したいのですが、Focus()を使用してテキストボックスフォーカスを設定できません - キャンバスが実際のウィンドウに貼られていないためでしょうか?)これには2つの結果があります:1キーボード入力がキャプチャされない2. TextBoxテキストを使用して手動でテキストを設定してもCaretIndex = indexフォーカスの欠如。この焦点をどうにかする方法はありますか?そうでない場合は、フォーカスがないのに少なくともキャレットが表示されるようにしたいが、これを行う方法が見えない。WPF texboxフォーカスをオフスクリーンバッファにレンダリングするとき
答えて
Windowsはキーボード入力をアクティブなウィンドウに直接配信するだけなので、これを行うには実際のウィンドウでホストする必要があります。 TextBox
が実際のウィンドウでホストされないようにする理由を明確にしていないので、キーボード入力がどのようにキャプチャされるかを知るのは難しいです。シナリオを少し詳しく説明できますか?
私は、元のテキストボックスが表示されていないことを確認することが重要であると推測しなければなりません。実際には、テキストボックスをアクティブなままにして、実際には表示されずにすべてのフォームを受け取ることができるように、ウィンドウにテキストボックスを配置することができます。ここでは一つの方法です:
<Grid>
<Grid
x:Name="container"
HorizontalAlignment="Left" VerticalAlignment="Top"
Margin="69,42,0,0"
Opacity="0"
>
<TextBox
Name="textBoxToRender"
Height="23" Width="120"
TextChanged="textBoxToRender_TextChanged"
/>
</Grid>
</Grid>
TextBox
要素自体は、ここでは完全に普通のですが、私は私がヒットテストとキーボード入力のために0にそのOpacity
を設定することで、目に見えない作りましたGrid
の内側にそれを入れています、それはまだ目に見えると考えられています。また、Opacity
をGrid
が含まれ、TextBox
ではなく、RenderTargetBitmap
と一緒に使用することができます。ここに私のテキスト変更イベントハンドラが分離コードである:
private void textBoxToRender_TextChanged(object sender, TextChangedEventArgs e)
{
var rtb = new RenderTargetBitmap(
(int) textBoxToRender.ActualWidth, (int) textBoxToRender.ActualHeight,
96, 96, PixelFormats.Pbgra32);
rtb.Render(textBoxToRender);
rectangle1.Fill = new ImageBrush(rtb);
}
最後の行だけの検証目的のためであることを - 私はそれが必要のように見えるチェックする四角形を描画するブラシで画像を使用しています。私の主なXAMLも、これを含んでいます
<Rectangle Height="72" HorizontalAlignment="Left" Margin="74,167,0,0"
Name="rectangle1" Stroke="Black" VerticalAlignment="Top" Width="255" />
私の分離コードのコンストラクタは、この含まれています
textBoxToRender.Focus();
を私は入力を開始するとき、私は私の(不一致のサイズに起因し、歪ん)ビットマップのコピーを見ることができますテキストボックスが四角形に表示され、テキスト入力、フォーカス、キャレット、およびすべてを含むテキストボックスのビットマップコピーを取得できることが確認されます。
テキストボックス自体は、「見えない」という意味で「画面外」のままです。
あなたが実際にやろうとしていることはわからないので、これがまったく役に立っているのかどうかはわかりませんが、役に立つと思います。
- 1. ClanLibを使用してオフスクリーンバッファにレンダリングする方法
- 2. javafx WebViewをオフスクリーンバッファまたはFBOにレンダリングしよう
- 3. Android NDK glReadPixels()オフスクリーンバッファ
- 4. キーボードフォーカスとWPFの論理フォーカス
- 5. WPFとC#ComboBox次のフォーカス
- 6. ウィンドウにフォーカスをロックするWPF
- 7. WPF:フォーカスを設定できません
- 8. WPFフォーカスは、論理フォーカスとキーボードフォーカスの両方を取得できません。
- 9. WPFをPNGにレンダリングするときにTransformGroupをFramworkElementに追加する
- 10. Libgdx |フォーカスしていないときにゲームをレンダリングする方法は?
- 11. tabContemのコントロールにフォーカスする方法WPF
- 12. ビジュアルスタジオ/ wpf/c#で「割り当てボタン」texboxを作成するには?
- 13. ComboBoxがフォーカスされているときのWPFマウスの動作
- 14. フォーカスwpfウィンドウのショートカットキー
- 15. WPFフォーカスの問題
- 16. WPFテキストボックスでフォーカスを設定する
- 17. WPFビジュアルをWMF/EMFファイルにレンダリングする
- 18. WPFのフォーカスを移動
- 19. WPFでTextBoxフォーカスが問題になる
- 20. WPFグリッドとその中のコントロールのフォーカス
- 21. Direct2DレンダリングをWPFコントロールにリダイレクト
- 22. WPF:ウィンドウのフォーカスが失われたときの検出
- 23. WPFポップアップがクリックされたときにアプリケーションにフォーカスを当てない
- 24. wpf datagridcell編集時にフォーカスを移動
- 25. WPFフォーカスを2回右に移動
- 26. フォーカスがあるときのデータグリッドセルのフォーカス
- 27. フォーカスされていないときに表示されるWPF ErrorTemplate?
- 28. WPFアプリケーションがサブメニューが閉じたときにフォーカスが失われる
- 29. WPF ComboBoxはフォーカスを失ったときにドロップダウンを縮めません
- 30. WPFのSharpDXレンダリング