2009-11-17 11 views

答えて

74

ほとんどのコントロールでは、XAMLの高さと幅をAutoに設定し、内容に合わせてサイズを調整します。

コードでは、幅/高さをdouble.NaNに設定します。詳細は、FrameworkElement.Width、特に「備考」を参照してください。

+34

これらのプロパティを指定する必要があるように、使用可能な領域を塗りつぶすように、水平方向と垂直方向のストレッチを行います。 Horizo​​ntalAlignment = "Left" VerticalAlignment = "Top" –

26

このような問題があって、ウィンドウの幅を指定しましたが、高さはAutoに設定されていました。子DockPanelVerticalAlignmentがトップに設定されていて、ウィンドウにはVerticalContentAlignmentがTopに設定されていましたが、ウィンドウはまだ内容よりもはるかに大きくなります。スヌープを使用して

、私は、ウィンドウ内のContentPresenter(ウィンドウの一部ではなく、私はそこに入れていた何かが)、それはStretchからVerticalAlignmentセットだと全体のウィンドウをretemplatingなしに変更することができない持っていること!発見

多くの不満の後で、私はSizeToContentプロパティを発見しました。これを使って、コンテンツのサイズに応じて、ウィンドウを縦、横、または両方にサイズ調整するかどうかを指定できます。私はその財産を見つけるのにずっと時間がかかったと信じられない!

+7

すべてのグリッドがこのプロパティを持つことを願っています... – Shimmy

+4

問題がトップレベルウィンドウに適用されるときSizeToContent = "WidthAndHeight"を設定します。私はこの1時間で時間を失った - それは直感的ではない! http://stackoverflow.com/questions/812079/window-heightauto-problem – DeveloperDan

+1

を参照してください。 'Window'は' Control'ですが、OPは 'UserControl'を参照していたと思います。これは' SizeToContent 'プロパティ。さもなければ、OPは被験者に「ウインドウ」という用語を使用する。 – ProfK

1

グリッドコンポーネントまたは類似コンポーネントを使用している場合: XAMLでは、グリッドの要素にGrid.RowとGrid.Columnが定義されていることを確認し、余白がないことを確認します。デザイナーモード、またはExpression Blendを使用した場合、特定のセルではなく、グリッド全体に対してマージンを割り当てることができます。 は、セルのサイズに関しては、私はスペースの残りをいっぱいに余分なセルを追加します。

<Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
1

私は別のコンテナによって制約されない、自由形式の方法で、ページの上に座ってユーザーコントロールを持っていたし、ユーザーコントロール内のコンテンツは自動サイズされませんが、ユーザーコントロールが渡された内容のフルサイズに展開されます。

は、私はこのような自動サイズに設定された行上でグリッドにそれを置き、高さのみのために、そのコンテンツに単にサイズにユーザーコントロールを取得するには、次のコントロールの多くは設定さらに

<Grid Margin="0,60,10,200"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <controls1:HelpPanel x:Name="HelpInfoPanel" 
         Visibility="Visible" 
         Width="570" 
         HorizontalAlignment="Right" 
         ItemsSource="{Binding HelpItems}" 
         Background="#FF313131" /> 
</Grid> 
関連する問題