請各位看看下面我的代碼:上面的代碼的RowDefinition Height =自動不起作用?
<Border Background="#242328" CornerRadius="10" Opacity="0.9">
<Grid Width="400">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="80"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding [someViewModel].Title}" Margin="0,20,0,20"/>
<StackPanel Grid.Row="1" Orientation="Vertical">
<TextBlock Margin="20,0,0,0" Text="{Binding [someViewModel].AnotherText}"/>
</StackPanel>
<StackPanel Grid.Row="2" Orientation="Vertical">
<Image Source="{Binding [someViewModel].source}" Width="100" Height="100"/>
<TextBlock Margin="20,0,0,0" Text="{Binding [someViewModel].AnotherText2}"/>
</StackPanel>
<Grid Grid.Row="3" Width="250" Margin="0,10,10,10">
<Button Width="120" Height="50" Background="#638699" Content="OK" FontSize="18"/>
</Grid>
</Grid>
</Border>
輸出:
現在我的問題很簡單,爲什麼會出現在按鈕上方空的空間?我已經設置了所有的RowDefinition Height="Auto"
,當我的變量中沒有任何值時,框不應該縮小到只剩下按鈕嗎?
請注意,所有的變量如 [someViewModel] .title僞,[someViewModel] .AnotherText,[someViewModel] .AnotherText2,[someViewModel] .Source將是無效
如果是這種情況,使用RowDefinition Height =「Auto」是什麼意思?' –
它會根據行內容的大小來設置行高。如果內容的大小在運行時發生變化,那麼行的大小也會變化。而你的控制仍然存在。如果他們有價值或沒有價值就沒關係。就像我所說的:如果你不想展示它們,你必須將可見性設置爲摺疊狀態。一個好的方法是使用轉換器。 –