1
我正在創建一個測試WPF項目(計算器)來測試命令綁定和日誌記錄的實現。基本佈局是網格。計算器的顯示器是一個跨兩列並伸展以填充所有可用空間的文本框。這工作正常,但我想調整主窗體調整大小時使用ViewBox調整顯示中的文本。我試着用幾種方法介紹ViewBox,但是當顯示器中的文本調整好後,TextBox不再伸展以填充所有空間。如何使ViewBox在具有ColumnSpan的Grid單元內伸展?
我該如何解決這個問題?下面的XAML。
<Grid>
<Grid.Resources>
<Style TargetType="Label">
<Setter Property="Margin" Value="5"/>
</Style>
<Style TargetType="TextBox">
<Setter Property="Margin" Value="5"/>
</Style>
<Style TargetType="Button">
<Setter Property="Margin" Value="5"/>
</Style>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Button Grid.Column="0" Grid.Row="1">M+</Button>
<Button Grid.Column="0" Grid.Row="2">MR</Button>
<Button Grid.Column="1" Grid.Row="2"
Click="Button_Click">1</Button>
<Button Grid.Column="2" Grid.Row="2"
Click="Button_Click">2</Button>
<Button Grid.Column="3" Grid.Row="2"
Click="Button_Click">3</Button>
<Button Grid.Column="1" Grid.Row="3"
Click="Button_Click">4</Button>
<Button Grid.Column="2" Grid.Row="3"
Click="Button_Click">5</Button>
<Button Grid.Column="3" Grid.Row="3"
Click="Button_Click">6</Button>
<Button Grid.Column="1" Grid.Row="4"
Click="Button_Click">7</Button>
<Button Grid.Column="2" Grid.Row="4"
Click="Button_Click">8</Button>
<Button Grid.Column="3" Grid.Row="4"
Click="Button_Click">9</Button>
<Button Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="5"
Click="Button_Click">0</Button>
<Button Grid.Column="3" Grid.Row="5"
Click="Button_Click">.</Button>
<Button Grid.Column="4" Grid.Row="2">=</Button>
<Button Grid.Column="4" Grid.Row="3">+</Button>
<Button Grid.Column="4" Grid.Row="4">-</Button>
<Button Grid.Column="5" Grid.Row="3">x</Button>
<Button Grid.Column="5" Grid.Row="4">:</Button>
<Button Grid.Column="4" Grid.Row="1">C</Button>
<Button Grid.Column="5" Grid.Row="1">CE</Button>
<Viewbox Grid.Column="1" Grid.Row="1">
<Label >M</Label>
</Viewbox>
<!-- Display -->
<TextBox Grid.Column="2" Grid.Row="1" Grid.ColumnSpan="2"
HorizontalContentAlignment="Right"
Text="{Binding CurrentValue}"/>
</Grid>
謝謝。你的隊友的答案令人驚訝的是更好的答案。但是,任何使文本框的高度等於按鈕的嘗試都會導致文本縮小。 – Dabblernl
只要把你的按鈕放在視框中,如果你擔心這一點。不要忘了給它們一個寬度,因此viewbox可以正確縮放它們 – Nogusta