2

4つのタブがあるTabControlがあります。

<TabControl> 
    <TabItem><TextBox/></TabItem>
    <TabItem><UserControl/></TabItem>
    <TabItem><Label/></TabItem>
    <TabItem><Image/></TabItem>
</TabControl> 

各項目は標準のWPFコントロールですが、2番目の項目であるカスタムUserControlは、任意のサイズにすることができます。

テキストボックスは一部のプロパティにバインドされますが、空にすることも、長いテキストを含めることもできます。ラベルと同じです。

代わりに、画像のサイズは常に最大です。

TabControlは、タブのサイズに応じてサイズを変更するウィンドウで定義されます。

現在の動作では、あるタブから次のタブに切り替えるたびに、ウィンドウのサイズが変わります。

私は、以下を取得するための最良の方法に戸惑っています。

  • TabControlは、UserControlのサイズに従ってサイズを設定します
  • TextBoxはTabItemパネルに収まりますが、必要なサイズが2番目のパネルのサイズよりも大きい場合は、垂直スクロールバーが表示されます。
  • フォームが読み込まれ、タブが表示されたら、あるタブから次のタブに変更してもウィンドウのサイズは変更されません。

カスタムコントロールを作成せずにこれを実現する方法についてのアイデアはありますか?

4

1 に答える 1

1

これは、いくつかのElementNameバインディングとScrollViewerを使用して実現できるはずです。

<TabControl Name="tabControl" Height="{Binding ElementName=userControl, Path=Height}">
    <TabItem Header="ONE">
        <ScrollViewer Height="{Binding ElementName=tabControl,Path=Height}">
            <TextBox Height="400" VerticalAlignment="Top"/>
        </ScrollViewer>
     </TabItem>
     <TabItem Header="TWO"><UserControl Name="userControl" Height="200" Width="400" /></TabItem>
     <TabItem Header="THREE"><Label/></TabItem>
     <TabItem Header="FOUR"><Image/></TabItem>
</TabControl>
于 2012-04-12T02:09:08.937 に答える