0

いくつかのボタンを持つ UserControl があります。私のボタンにはデフォルトの FocusVisualStyle (ボタンの周りの境界線) があります。

マウスでユーザー コントロールを移動すると、この点線の境界線が移動しません。画面の別の部分にカーソルを合わせると、正しい位置に移動します。

どの要素がフォーカスされているかを確認する必要があるため、FocusVisualStyle を null に設定したくありません。独自の FocusVisualStyle を作成しようとしましたが、デフォルトのように動作します。

どうにかしてこの境界線を残りの要素と同期させることはできますか?

手伝ってくれてありがとう

4

3 に答える 3

3

bitbonkが述べているように、RenderTransformは別のアレンジパスを引き起こさないため、フォーカスビジュアルは移動しません。この問題について説明し、いくつかの回避策を提供するこのDr.WPFの記事を読むことができます。あなたの場合の最も簡単な方法は、UserControl内のUserControlのコンテンツの周りにAdornerDecoratorを配置して、AdornerLayerも移動することです。

于 2013-01-14T16:03:45.460 に答える
0

RenderTransformレイアウト パスでレンダリングされるため、FocusVisualStyle四角形を使用する場合はボタンで移動しません。RenderTransformこれが、すべてのビジュアルを変換し、ビジュアル ツリーの残りのレイアウトを無視するという全体的なポイントです。

ボタンを移動するには、LayoutTransformまたはButton.Marginまたはを使用する必要があります。Canvas.LeftCanvas.Top

于 2013-01-14T15:20:28.703 に答える