将 UI 元素的宽度绑定到另一个 UI 元素的宽度
我想将列标题的宽度绑定到定义的标题的宽度。但是该代码不起作用。如果我明确指定宽度(Width =“100”),它就可以正常工作。有人可以阐明并告诉我下面的代码有什么问题吗?
<dataGrid:DataGridTemplateColumn x:Name="pdpCol" Width="100">
<dataGrid:DataGridTemplateColumn.Header>
<Grid HorizontalAlignment="Stretch">
<TextBlock Text="PDP" VerticalAlignment="Center" HorizontalAlignment="Center"
TextWrapping="Wrap" Width="{Binding ElementName=pdpCol,Path=ActualWidth }" TextAlignment="Center" />
</Grid>
</dataGrid:DataGridTemplateColumn.Header>
</dataGrid:DataGridTemplateColumn>
I wanted to bind Width
of a column header to the Width
of the header defined. However the code doesn't work. If I specify the Width
explicitly (Width="100"), it works fine. Can someone shed some light and tell me what is wrong with the code below?
<dataGrid:DataGridTemplateColumn x:Name="pdpCol" Width="100">
<dataGrid:DataGridTemplateColumn.Header>
<Grid HorizontalAlignment="Stretch">
<TextBlock Text="PDP" VerticalAlignment="Center" HorizontalAlignment="Center"
TextWrapping="Wrap" Width="{Binding ElementName=pdpCol,Path=ActualWidth }" TextAlignment="Center" />
</Grid>
</dataGrid:DataGridTemplateColumn.Header>
</dataGrid:DataGridTemplateColumn>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
从 TextBlock 中删除
HorizontalAlignment="Center"
或将属性设置为Stretch
。然后 TextBlock 将自动消耗所有可用宽度。此外,如果除了文本块之外不显示任何其他内容,则删除网格并仅使用 TextBlock。您还需要直接设置 HeaderTemplate 而不是 Header。最好的问候,
奥利弗·哈纳皮
Remove the
HorizontalAlignment="Center"
from the TextBlock or set the property toStretch
. Then the TextBlock will consume all available width automatically. Furthermore, if you don't show anything else than the textblock, then remove the grid and use just the TextBlock. You also need to set HeaderTemplate rather the Header directly.Best Regards,
Oliver Hanappi
尝试下面的标记。请注意使用
HeaderStyle
来拉伸模板,并使用HeaderTemplate
来实际定义Header="PDP"
项目的可视模板。Try the markup below. Please note the use of
HeaderStyle
to stretch the template andHeaderTemplate
to actually define the visual template for yourHeader="PDP"
item.检查
ActualWidth
是否已设置,我认为如果您只使用Path=Width
,它就会起作用。Check if
ActualWidth
is being set, I think it will work if you just usePath=Width
.