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的子控件的宽度跟父控件的宽度一样,当父控件宽度改变的时候子控件随着改变,请问有啥!的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WPF 中将宽度设置为 100%

wpf 怎么获取一个控件的宽度?

wpf 控件宽度绑定

WPF数据绑定问题:子控件宽度是父容器宽度的1/3,如何做?

如何将 WPF 选项卡项标题拉伸到父控件宽度

C# WPF 如何以编程方式设置控件的位置、宽度和高度?