我试图布局的设计,其中的文本块需要增长/收缩时,我们最大化的应用程序。
在我的设计中,网格有4列和2行。第二行中的文本块相对于主窗口大小增长/收缩。
但不是第一行中的文本块。值为Stretch或Right的TextAlignment或HorizontalAlignment属性没有帮助。
有人能指导我如何使第一行的文本块
- 填写第1和第2栏
- 当我们最大化应用程序时增长/收缩
<Window x:Class="WpfApp1.MainWindow"
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"
xmlns:local="clr-namespace:WpfApp1"
mc:Ignorable="d"
Title="MainWindow" Height="400" Width="600">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Top">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="120"/>
</Grid.RowDefinitions>
<CheckBox Name="Enable" Content="Enable" Width="70" Height="20" Margin="1,0,0,0" Grid.Row="0" Grid.Column="0"></CheckBox>
<Border Margin="2" BorderBrush="Black" BorderThickness="1" Height="20" HorizontalAlignment="Right" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2" >
<TextBlock Name="Status" Text="current status" TextAlignment="Right" HorizontalAlignment="Right"></TextBlock>
</Border>
<Button x:Name="Clear" Content="Clear" Width="40" Height="20" Margin="1,0,2,0" HorizontalAlignment="Right" ToolTip="clear" Grid.Row="0" Grid.Column="3">
</Button>
<Border Margin="2" BorderBrush="Black" BorderThickness="1" Height="110" Grid.ColumnSpan="4" Grid.Row="1" Grid.Column="0">
<ScrollViewer>
<TextBlock Name="ActionText" Text="" TextWrapping="Wrap">
</TextBlock>
</ScrollViewer>
</Border>
</Grid>
</Window>
1条答案
按热度按时间bksxznpy1#
好吧,这有点让人困惑,但我想我看到了问题所在。
首先,第1列和第2列都设置为
Auto
大小,这意味着它们将大小设置为其中的Content
。第1列和第2列的TextBlock
表示“当前状态”,我猜这就是您想要更改的状态。为此,请将第1列和第2列设置为比例大小模式(1*、2* 等)。尝试一些值,以找到适合您的用例的值。
接下来,您需要将这个
TextBlock
放入ViewBox
中,这样视觉效果将自动增长和收缩到它拥有的可用空间。最后,充分利用
MaxWidth
和MinWidth
属性,以确保将Window调整为任何大小都不会导致TextBlock
变得太大/太小。作为补充,我建议您删除包含名为 ActionText 的
TextBlock
的ScrollViewer
,并将其替换为TextBox
,并将ReadOnly
属性设置为true
。我已经应用了这些建议,结果是我相信你的意图。注意我还调整了列以删除不需要的列,并将它们的比例大小权重设置为一些建议值,您可以根据需要进行调整。