获取一个文本框以填充 WPF 中的网格单元格

Posted

技术标签:

【中文标题】获取一个文本框以填充 WPF 中的网格单元格【英文标题】:Get a textbox to fill a grid cell in WPF 【发布时间】:2014-12-07 12:48:59 【问题描述】:

我试图在 WPF 中显示一个文本框,该文本框占据其包含网格单元格的整个空间。

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto"/>
    </Grid.ColumnDefinitions>
    <Button Grid.Column="0" Content="1" HorizontalAlignment="Center"/>
    <DockPanel Grid.Column="1" VerticalAlignment="Stretch" >
        <TextBlock
            Text="2" 
            Background="Black" Foreground="White" 
            TextAlignment="Center" VerticalAlignment="Center"
        />
    </DockPanel>
    <Button Grid.Column="2" Content="3" HorizontalAlignment="Center"/>
</Grid>

我尝试将文本块直接放在网格中,以及其他各种容器:DockPanel、UniformGrid、StackPanel。我得到的最接近的方法是直接在网格中有文本块并将VerticalAlignment 设置为Stretch,但这会使文本与文本块的顶部对齐。

所以,我的问题是:我如何(或有可能)强制中间的文本块填充可用的网格空间,并将文本集中在文本块中?

【问题讨论】:

您无法将文本与垂直中心对齐***.com/questions/17828417/… 【参考方案1】:

如果您使用标签而不是 TextBlock,您可以将文本安排在中心位置。

【讨论】:

以上是关于获取一个文本框以填充 WPF 中的网格单元格的主要内容,如果未能解决你的问题,请参考以下文章

如何获得一个 WPF 数据网格,其中包含环绕文本而不是截断文本的单元格?

WPF:将控件高度设置为填充网格行高

如何基于二维数组填充 WPF 网格

如何获取 WPF DataGrid 的单元格级别组合框?

如何在 WPF 数据网格中选择单个单元格?

如何在我的 DataGrid 中获取所选单元格的当前列(C# WPF 应用程序)