WPF宽度100%,我想wpf的子控件的宽度跟父控件的宽度一样,当父控件宽度改变的时候子控件随着改变,请问有啥!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF宽度100%,我想wpf的子控件的宽度跟父控件的宽度一样,当父控件宽度改变的时候子控件随着改变,请问有啥!相关的知识,希望对你有一定的参考价值。
参考技术A 如果父控件为Grid,那只需要设置其子控件HorizontalAlignment="Stretch"即可 参考技术B 设置样式,然后该控件里的子控件都会默认使用该样式,除非给子控件指定了具体的样式。wpf 控件宽度绑定
【中文标题】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宽度100%,我想wpf的子控件的宽度跟父控件的宽度一样,当父控件宽度改变的时候子控件随着改变,请问有啥!的主要内容,如果未能解决你的问题,请参考以下文章