2011-01-26 17 views
0

私はWPFの新機能で、DockPanelコントロールを理解しようとしています。私はWindowを構築しており、DockPanelを使ってコントロールを私が望むようにドッキングしています。しかし、DockPanel自体をドッキングすることは可能でしょうか?例えば、ウィンドウの上部に?私はこれを行う方法を見つけることができないようです。理想的には、DockPanelドック自体をウィンドウの上部に配置して、ウィンドウのサイズが変更されたときに、ウィンドウのサイズが水平方向に変更されたときに拡大または縮小するようにしたいと考えています。WPF - DockPanel質問

問題は、DockPanel自体にDocプロパティが見つかりません。これはできないのですか?

答えて

3

ドッキングする場合は別のDockPanelに配置する必要があります。

私の経験では、レイアウトが複雑なレベルになると、グリッドコントロールを使用する方が良いことがよくありました。これにより、レイアウトに対する膨大な制御が可能になり、動的に増加する行/列(固定サイズの部分を持つ)を簡単に作成できます。コメントへの応答で


編集:

あなたは、必要に応じてスケールグリッドを使用することができます。オプションの詳細については

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="2*" /> 
    </Grid.RowDefinitions> 
</Grid> 

:たとえば、スターの構文を使用することにより、あなたは一番上の行は常にウィンドウサイズの1 /第3回で、下段がそうのように、2/3rdsでグリッドを持つことができますサイジングについては、GridLengthを参照してください。 「自動」(コンテンツに合わせる)、「*」でスペースを基準にしたり、固定された高さ(数字を入れる)を使用できます。

+0

@Reedを支援します。

は、ここに私のコードです。私は質問をすることによって簡素化しようとしましょう。単一のタブコントロールをウィンドウに配置し、ウィンドウの上部にドッキングさせて、ユーザーがウィンドウを水平方向にサイズ変更するときに水平に伸縮するようにしたいとします。どうしますか? –

+0

@Randy:私は2行のグリッドを使っています。それはデフォルトでは「うまくいく」でしょう。それは言われている、私はほとんどドックパネルを使用していないことがわかった。グリッドはあなたがそれを見つけたらもっと柔軟になる傾向があるからだ。 –

+0

@Reed - 私たちは近づいていると思う!もう1つの質問。グリッドを使用する場合、ユーザーがウィンドウを拡大または縮小すると、グリッドを拡大または縮小するにはどうすればよいですか? –

0

私はこれが欲しいかどうかはわかりませんが、私はDockPanelMenuがあります。ウィンドウのサイズを変更すると、メニューのサイズが変更されます。 - 私はこの音ははるかに複雑なそれが実際よりも作った

<Grid> 
    <DockPanel Height="50" Margin="0" Name="MenuDockPanel" VerticalAlignment="Top" Width="Auto"> 

    <Menu Height="23" Name="MenuPanel" Width="Auto" VerticalAlignment="Top"> 
    <MenuItem Header="_File"> 
    </Menu> 
    </DockPanel> 
<Grid> 

ホープこれは