【问题标题】:In a grid cell, how to share space between a button and a textbox在网格单元格中,如何在按钮和文本框之间共享空间
【发布时间】:2014-02-02 11:44:27
【问题描述】:

我有以下 XAML,在网格单元格中,我尝试让按钮仅使用它需要的空间,停靠在右侧,停靠在左侧,文本框占据该单元格中的剩余空间.

<Grid Height="Auto" Width="Auto"  Margin="5">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="290"></RowDefinition>
        <RowDefinition></RowDefinition>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition Width="*"></ColumnDefinition>
    </Grid.ColumnDefinitions>

    ...

    <DockPanel Grid.Column="1" Grid.Row="4">
        <TextBox Name="txtSelectedViewUrl"  Text="{Binding Url}" IsEnabled="{Binding EditMode}"/>
        <Button Name="btnTestUrl" Content="Test" Click="btnTestUrl_Click_1" DockPanel.Dock="Right"/>
    </DockPanel>

    ...

</Grid>

相反,我得到以下信息:当最初为空时,文本框几乎不可见,我只需单击它即可开始输入。按钮占据了整个空间。当我在文本框中键入时,按钮的宽度会减小,从而为文本框留出空间来增长。当您认为按钮已达到其最小尺寸时,它不会停在那里,它会继续,直到文本框占据整个单元格并且按钮变得不可见。至少文本框不会溢出...

我尝试了各种方法,但无法让停靠面板布局在这里工作。我正在寻找从右到左流动的堆栈面板可以提供帮助的解决方案,但是在搜索如何让最后一个元素填充剩余空间时,我最终找到了建议停靠面板是解决方案的线程!

【问题讨论】:

    标签: c# wpf layout


    【解决方案1】:

    您需要将 DockPanel 的 LastChildFill 属性设置为 true,并将您的文本框作为最后一个子项(停靠面板中的最后一个元素)。这将告诉DockPanel 将文本框显示为 filling 元素。请查看this post 关于 DockPanel 以供参考。

    <DockPanel Grid.Column="1" Grid.Row="4" LastChildFill="True">
        <Button Name="btnTestUrl" Content="Test" Click="btnTestUrl_Click_1" DockPanel.Dock="Right"/>
        <TextBox Name="txtSelectedViewUrl"  Text="{Binding Url}" IsEnabled="{Binding EditMode}"/>
    </DockPanel>
    

    【讨论】:

      猜你喜欢
      • 2015-09-27
      • 2023-03-24
      • 1970-01-01
      • 2015-05-01
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多