wpf 控件宽度绑定
Posted
技术标签:
【中文标题】wpf 控件宽度绑定【英文标题】:wpf control width binding 【发布时间】:2011-08-17 21:32:24 【问题描述】:我有两个带内容的边框,第二个边框宽度根据 在内容上,我正在尝试将第一个边框绑定到第二个边框宽度,但是 它不起作用,我不确定我错过了什么。有人可以给我一些指导吗? 以下是我目前正在尝试的示例。
<Border x:Name="border1" Width="Binding Path=Width, ElementName=border2">
...
</Border>
<Border x:Name="border2">
...
</Border>
【问题讨论】:
【参考方案1】:将路径更改为ActualWidth
。
<Border x:Name="border1" Width="Binding Path=ActualWidth, ElementName=border2">
</Border>
<Border x:Name="border2">
</Border>
【讨论】:
谢谢。我查找了 ActualWidth 并找到了这个链接。 ***.com/q/607827/684042 现在对我来说很有意义。谢谢。【参考方案2】:也改变 ViewportWidth 的路径!
<Grid x:Name="mainGrid">
//and some elements exist there
<Grid>
<Border x:Name="border_btn" Width="Binding ElementName=root ,Path=ViewportWidth, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged"/>
</Grid>
</Grid>
使用 ViewportWidth 而不是 ActualWidth 因为在这种情况下 ActualWidth 总是显示为 0! 为了测试这个问题,你可以在你的 xaml 中使用这一行来测试它。
<TextBlock Text="Binding ElementName=mainGrid, Path=ActualWidth ,Mode=TwoWay" Foreground="Red"/>
【讨论】:
@Bart 这是一个答案而不是评论! 一个 5 年前的问题已经有一个被接受的答案,如果你认为你的答案更好,它应该比 5 个词更具描述性,并解释为什么你的答案更好。以上是关于wpf 控件宽度绑定的主要内容,如果未能解决你的问题,请参考以下文章