2012-03-12 8 views
1

こんにちは、私はレイアウトをしようとしているかもしれないが、dockpanelのアプリケーションかもしれない。 私は比較的幅の広いグリッドを左側に、狭いグリッドを右側に持っています。私は固定幅の右のグリッドが欲しいが、私はメインウィンドウのサイズを変更するにつれて成長するようにした。ここに私のXAMLは次のとおりです。DockPanelのレイアウト

<Window 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" 
x:Class="WebSpark.MainWindow" 
x:Name="Window" 
Title="MainWindow" 
Width="640" Height="480"> 

<DockPanel x:Name="LayoutRoot" Background="#FF474747" LastChildFill="True"> 
    <Grid DockPanel.Dock="Top" Height="23" Background="#FFEF1212" /> 
    <Grid DockPanel.Dock="Top" Height="23" Background="#FFF7E30D" /> 
    <Grid DockPanel.Dock="Left" Background="#FF0A38F1" MinHeight="396" Width="{Binding ElementName=LayoutRoot,Path=ActualWidth}" MaxWidth="428" /> 
    <Grid DockPanel.Dock="Right" HorizontalAlignment="Right" Width="198" /> 
</DockPanel>  

ここでの動作があります。復元されたウィンドウ:http://s17.postimage.org/tk1pov6b3/Restored.png 最大化されたウィンドウ:http://s9.postimage.org/457s5r23j/Maximized.png

最大化されたウィンドウでわかるように、青色のパネルは伸びているはずですが、そうではありません。ここで何が間違っていますか?助けてください。ありがとうございました。

答えて

0

LastChildFill = "True"を利用してください。このコードは、灰色のボックスが固定サイズで、青色のボックスが可変サイズであることを保証します。

<DockPanel x:Name="LayoutRoot" Background="#FF474747" LastChildFill="True"> 
    <Grid DockPanel.Dock="Top" Height="23" Background="#FFEF1212" /> 
    <Grid DockPanel.Dock="Top" Height="23" Background="#FFF7E30D" /> 
    <Grid DockPanel.Dock="Right" HorizontalAlignment="Right" Width="198" /> 
    <Grid DockPanel.Dock="Left" Background="#FF0A38F1" MinHeight="396" /> 
</DockPanel> 
関連する問題