我正在努力在WPF应用程序中设置页脚。我希望页脚是一个简单的文本,仅此而已,并且我希望它在调整页面大小时保持不动。该页面的顶部包含一个菜单,一个按钮,由于我不想更改其大小,因此将其放入画布。我也有一个位于网格中的textBox,我希望它随页面调整大小。在文本框下,我想要设置页脚(我使用标签对其进行设置)。有人可以告诉我如何实现吗?我尝试了一切..
这是我的.XAML文件的主要部分:
<Grid>
<Menu>
<MenuItem Header="_File">
<MenuItem Header="_Exit" Command="{Binding x}"/>
</MenuItem>
<MenuItem Header="_View">
<MenuItem Header="Logs" Comm`enter code here`and="{Binding y}" />
</MenuItem>
</Menu>
<Canvas Margin="0,0,-0.4,432.6">
<Button Command="{Binding z}" Name="Button" Canvas.Top="22" Width="122" Height="24" Canvas.Left="10">Download Images</Button>
</Canvas>
<Canvas Margin="0,0,-0.4,432.6">
<Label HorizontalAlignment="Left" Width="108" Canvas.Left="10" Height="25" Canvas.Top="47">Status</Label>
</Canvas>
<TextBox Name="MessageDisplay" Text="{Binding q, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay,IsAsync=True}" Margin="10,73,10.6,44.6"/>
<Label Margin="0,475,-0.4,-0.4">Footer !!!</Label>
</Grid>
这是我运行该应用程序时的外观:Before any resize
这是我最大化页面后发生的事情:maximized
您应该将RowDefinitions
用于Grid
,以便可靠地执行此操作。不要将画布位置和边距设置为特定区域,否则调整大小将永远看起来不合适。边距是一个很好的工具,但应在控件位于布局内的区域范围内进行设置
指定行定义及其高度。这是使用您的代码的示例。行从索引0开始。以本示例为例,查找有关在WPF中指定网格行和列布局的更多信息。不过,这应该可以让您开始正确的道路。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition Height="40"/>
<RowDefinition Height="40"/>
<RowDefinition Height="*"/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<Menu>
<MenuItem Header="_File">
<MenuItem Header="_Exit" Command="{Binding x}"/>
</MenuItem>
<MenuItem Header="_View">
<MenuItem Header="Logs" />
</MenuItem>
</Menu>
<Canvas Grid.Row="1">
<Button Command="{Binding z}" Name="Button" Margin="5" Width="122" Height="24" >Download Images</Button>
</Canvas>
<Canvas Grid.Row="2">
<Label HorizontalAlignment="Left" Width="108" Height="25" >Status</Label>
</Canvas>
<TextBox Grid.Row="3" Name="MessageDisplay" Text="{Binding q, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay,IsAsync=True}" Margin="5"/>
<Label Grid.Row="4" >Footer !!!</Label>
</Grid>