2012-03-12 7 views
0

私は4行のメイングリッドを持つWPFアプリケーションを使用しています。 XAMLで行(0)のプロパティMaxHeightをバインドするか、内部のコントロールのHeight値の背後にあるコードをバインドすることはありません。 コントロールの行(0)はScrollViewerであり、実行時にはSV内にコントロールを追加します。バインドでgrid.row maxheightを設定する

<Grid Name="MainGrid"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" MinHeight="64" MaxHeight="{Binding Path=ActualHeight, ElementName=HeaderScrollViewer}"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="50"/> 
</Grid.RowDefinitions> 

そして、背後にあるコードによって:

Grid.SetRow(Me.MainGrid, 0) 
    Me.MainGrid.MaxHeight = Me.HeaderScrollViewer.Height 
    Me.MainGrid.UpdateLayout() 

しかし、運...任意の提案

私は、XAMLコードで試してみましたか?

+0

基本的に最初の行の高さを動的に制御する必要がありますか? – JackyBoi

+0

http://stackoverflow.com/questions/147908/how-do-i-databind-a-columndefinitions-width-or-definitions-height – Phil

答えて

0

ActualHeightでお試しください。

Grid.SetRow(Me.MainGrid, 0) 
    Me.MainGrid.MaxHeight = Me.HeaderScrollViewer.ActualHeight <--- 
    Me.MainGrid.UpdateLayout() 
+0

私はすでに試しましたが、結果は同じです。 – Jotric

+0

コントロールを追加すると、grid.row(0).Heigthが "Auto"に設定され、次に内部の行(0)を持つScrollViewが展開できます。操作の追加が終わると、私はコントロールの次元を持っています。しかし、私はMaxHeigtを正しく設定することはできません。いずれにしても、Heigthプロパティを使用するとグラフィックの結果が良くなり、理由がわかりません。 – Jotric