2010-12-02 10 views
1

Visual Studio 2010のタブヘッダーのように機能するコントロールを作成したいと考えています。マウスが入ったときにコントロールの上にボタンを浮かべる方法はありますか(WPF)?

いくつかのタブ(MainWindow.xaml、MainWindow.xaml.csなど)を開いている場合、閉じるボタンが表示されますが、非アクティブなタブの上にマウスを置くと、閉じるボタンが表示されます。つまり、ワンクリックですべてのタブを閉じることができます。

おそらく浮動ボタンの下にあるテキストの境界になります。

答えて

2

すべてのWPFコントロールはコンテナです。例えば、ボタンの中にボタンを入れることができます。あなたはそれに必要な項目を持つコントロールにレイアウトマネージャを持つことができます。

TextAreaとButtonをStackPanelに持つユーザーコントロールを使用することができます。次に、ボタンを非表示にします。次に、MouseEnterイベントとMouseLeaveイベントのユーザーコントロールを登録し、マウスが上に来たときにボタンを表示させ、閉じたときに再度非表示にします。

+0

私はそれを考えましたが、それはあまりにも多くのリソースを使用するかもしれないと考えました(一度に画面上に〜50のコントロールがあります)。しかし、私はそれが最良の方法かもしれないと思う。 – coldandtired

+0

WPFはリソースの使用に最適化されています。あなたはあなたがそれをやる方法を尋ねました。それはあなたがそれをやる方法です。これは、VS10で使用されるタブよりもリソースを大量に消費することはありません。私はあなたが非常に単純なことを複雑にすることを試みていると思います。まず、最も簡単な解決策を探してください。パフォーマンスの問題があることを知る前に、パフォーマンスを最適化しないでください。必要な場合にのみ必要に応じて、そこからリファクタリングよりも常に最初に動作させるようにしてください。 –

関連する問題