c# - 让 TextBox 填充 Grid 中的剩余空间

标签 c# wpf textbox grid

我有一个包含网格的列表框。 Grid 有一个 Label Column、一个 GridSplitter 和一个 TextBox Column。 如何让 Grid 占据 ListBox 的整个宽度并让 TextBox 使用 Grid Column 的整个空间?

<Grid>
    <ListBox x:Name="myList"  Margin="4" ItemsSource="{Binding Path=Parameter}" MinHeight="60" Grid.IsSharedSizeScope="True" HorizontalAlignment="Stretch" >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid x:Name="parameterGrid" HorizontalAlignment="Stretch">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition x:Name="labelColumn" Width="Auto" SharedSizeGroup="LabelColumn"/>
                        <ColumnDefinition x:Name="splitterColumn" Width="5"/>
                        <ColumnDefinition x:Name="textColumn" Width="*"/>
                    </Grid.ColumnDefinitions>
                    <TextBlock Text="{Binding Path=Key}" Grid.Column="0"/>
                    <GridSplitter Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
                    <TextBox Grid.Column="2" Text="{Binding Path=Value, UpdateSourceTrigger=LostFocus}"
                                                                 IsEnabled="{Binding ElementName=_view, Path=DataContext.IsEditEnabled}">
                    </TextBox>
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>

参数只是为了演示这个想法:

public class Parameter
{ 
   public string Key { get; set; }
   public string Value { get; set; }

   public Parameter(string key, string value)
   {
       Key = key;
       Value = value;
   }
}

最佳答案

尝试在 ListBox 上设置 Horizo​​ntalContentAlignment="Stretch"

关于c# - 让 TextBox 填充 Grid 中的剩余空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10413305/

相关文章:

wpf - 无法将 DependencyProperty 绑定(bind)到我的 UserControl

php - 将mysql数据库中的编号加载到文本框中

c# - 文本框使用不同的条形码时出错

c# - 从路径获取文件夹名称

c# - Entity Framework 不会延迟加载复杂类型

c# - 泛型基类覆盖非泛型基类函数模式? (。网)

c# - 图像到内存慢

wpf - 绑定(bind)时出现方法或操作未实现错误

c# - 在 XAML 中添加数学公式的好方法?

c# - 检查TextBox是否为空并返回MessageBox?