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 控件宽度绑定的主要内容,如果未能解决你的问题,请参考以下文章

WPF 高度/宽度

WPF怎么把一个控件的值绑定到一个变量啊?

WPF——ComboBox控件怎么绑定数据

wpf 自定义控件的自定义属性的数据绑定问题

wpf 控件属性通过数据绑定到某个集合的某一个数据上。

WPF 动画:绑定到情节提要动画的“To”属性