设置在调整 WPF 应用程序大小时保留在页脚区域中的页脚
Set up a footer that stays in the footer area when resize WPF application
我很难在 WPF 应用程序中设置页脚。我希望我的页脚是一个简单的文本,仅此而已,我希望它在调整页面大小时保持静止。该页面在顶部包含一个菜单,一个按钮,该按钮被放入 canvas 中,因为我不希望它更改其大小。我还有一个位于网格中的文本框,我希望它随页面调整大小。在文本框下,我想设置页脚(我用标签设置)。谁能告诉我如何实现这一目标?我什么都试过了..
这是我的 .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
可靠地执行此操作。不要为特定区域设置 canvas 位置和边距,否则您的调整大小永远不会正确。边距是一个很好的工具,但它应该设置在布局内控件所在区域的范围内
指定您的行定义及其高度。这是使用您的代码的示例。行从索引 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>
我很难在 WPF 应用程序中设置页脚。我希望我的页脚是一个简单的文本,仅此而已,我希望它在调整页面大小时保持静止。该页面在顶部包含一个菜单,一个按钮,该按钮被放入 canvas 中,因为我不希望它更改其大小。我还有一个位于网格中的文本框,我希望它随页面调整大小。在文本框下,我想设置页脚(我用标签设置)。谁能告诉我如何实现这一目标?我什么都试过了..
这是我的 .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
可靠地执行此操作。不要为特定区域设置 canvas 位置和边距,否则您的调整大小永远不会正确。边距是一个很好的工具,但它应该设置在布局内控件所在区域的范围内
指定您的行定义及其高度。这是使用您的代码的示例。行从索引 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>