【问题标题】:change location of buttons in panel更改面板中按钮的位置
【发布时间】:2014-04-07 10:39:48
【问题描述】:

我有一个面板,里面有一些按钮。我希望如果面板大小发生变化,按钮位置也会发生变化。

例如,如果面板减少 5px,则按钮位置 x 减少 5 px 到...

我该怎么做? 谢谢

【问题讨论】:

  • 如果您使用 WinForms,请参阅Anchor property
  • @Grundy 谢谢,我使用了锚点,但它只改变了大小。我也想换个位置...
  • 这取决于你如何使用锚点,你能提供更多信息吗?
  • 将按钮停靠在面板中的某处(请参阅 Anchor 属性)

标签: c# button


【解决方案1】:

您可以使用锚属性来定义控件在调整其父控件大小时如何自动调整大小。

【讨论】:

    【解决方案2】:

    WinForms: 使用 Anchor 属性,您将能够在调整面板大小时调整按钮的大小。但是,如果您需要更改位置,那么恐怕您必须在代码中进行,例如在调整表单大小事件时。下面的示例将按钮定位在表单宽度的第 10 位。

    private void Form1_Resize(object sender, EventArgs e)
    {
        this.button1.Location = new Point(this.Width / 10, this.button1.Location.Y);
    }
    

    WPF: 在 WPF 中,您可以使用具有两列的网格在 XAML 中执行此操作。您将按钮放在第二列。第一列将用作一种缓冲区,以使按钮远离应用程序的边缘。一个想法 - 列的大小必须描述为一个比率,即使用星号(“*”)。在下面的代码中,按钮总是在网格宽度的 10 处

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="9*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button
            Grid.Column="1" Margin="10"/>
    </Grid> 
    

    【讨论】:

      【解决方案3】:

      您可以使用按钮的AnchorDock 属性 这个link可以帮助你

      【讨论】:

        猜你喜欢
        • 2019-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-30
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        相关资源
        最近更新 更多