获得孩子最宽的孩子的ActualWidth

时间:2015-08-17 17:59:17

标签: c# wpf xaml binding

我正在使用画布来产生我的扩展器在其下方元素上的悬停效果,并将其宽度限制在扩展器上。但是,我刚刚注意到(当我更改语言时)其中一个元素是一个长字符串,当它可见时它向父节点(扩展器)提供宽度,但不是。

<Canvas Width="{Binding ActualWidth, ElementName=TheExpander}">
  <Expander Name="TheExpander" ...>
    <ListBox ... >
      <ListBox.ItemTemplate>
        <DataTemplate>
          <CheckBox ... />
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>
  </Expander>
</Canvas>

有没有相对简单的方式吗?如果正确的解决方案要求我重建标记,我相信我更愿意简单地将画布的宽度设置为丑陋,令人讨厌并且让我感到耳目一新,即硬盘-coded。

1 个答案:

答案 0 :(得分:0)

你应该几乎从不硬编码宽度和高度。让WPF布局引擎弄明白。这就是它的用途。类似StackPanel等的东西会根据需要增长。