c# - 调整父窗口大小时的 WPF 调整大小/对齐按钮

标签 c# wpf controls

我正在编写我的第一个 WPF 应用程序,当窗口最大化时,我在调整按钮大小/对齐按钮方面遇到了一些问题。

基本上我的应用程序顶部有一排大按钮。目前它们在 Canvas 中,但我也尝试过 Grid 和 Stackpanel。每当我最大化(或者实际上只是展开我的窗口)时,按钮基本上都停留在同一个地方。我想要的是相对于其父容器重新定位按钮,或者拉伸(stretch)按钮宽度以适应更改。

任何人都可以就实现此目标的最佳容器和方法提供建议吗?我查看了 Canvas.Top/Left、HorzontalAlignment、Margin 等,但似乎找不到正确的组合。

谢谢。

最佳答案

在 WPF 中,所有内容都应该在 MainGrid 中对齐。 如果您将 Button 1 放入例如 Grid.Row 3 和 Grid.Column 2 中,它将保留在那里。

如果您更改窗口大小,网格会调整大小,但控件会保留在原位。 您还可以将网格行/列设置为固定宽度、自动调整大小或百分比。

与您的控件相同。因此,了解这一点后,只需尝试一下即可。

这是一个例子。只是玩弄宽度:

<Grid x:Name="LayoutRoot" Background="White">
    <Grid.RowDefinitions>
        <RowDefinition Height="43*" />
        <RowDefinition Height="222*" />
        <RowDefinition Height="35*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="113*" />
        <ColumnDefinition Width="168*" />
        <ColumnDefinition Width="119*" />
    </Grid.ColumnDefinitions>
    <Button Content="TEST" Grid.Column="2" Grid.Row="1" 
     HorizontalAlignment="Stretch"  VerticalAlignment="Stretch" />
</Grid>

做一些 Auto,做一些 fixed,最后你就会明白目标。

关于c# - 调整父窗口大小时的 WPF 调整大小/对齐按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8644322/

相关文章:

c# - 安装配置文件服务 - 配置文件安装失败(从 iOS 获取 UDID)

compiler-construction - 控制依赖图可以有循环吗?

c# - 如何在不阻塞的情况下用大量信息填充 ListView ?

c# - 我应该如何处理表单中的单引号以帮助防止 SQL 注入(inject),使用 WebMatrix razor (C#)

c# - 从 WPF Windows 应用程序到实际控制台的输出 Console.WriteLine

c# - 如何删除 BasedOn 样式中的触发器?

c# - 如何在 WPF 中创建自适应布局?

c# - wpf检查列表框

c# - 类似资源管理器的图像浏览器的最佳控件

c# - 如何使用 Automapper 来展平实体层次结构列表?