首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >绑定到ActualHeight的位置

绑定到ActualHeight的位置
EN

Stack Overflow用户
提问于 2010-05-18 19:34:13
回答 2查看 699关注 0票数 2

我想在XAML中将列表的位置绑定到它自己的高度。所以它的左下角总是在画布的0.0处。我使用elementBinding来获取ActualHeight,并使用一个转换器来反转属性。但是发送到转换器的高度是0。

我该如何解决这个问题,还是我走错了路?

代码语言:javascript
复制
<Canvas x:Name="DisplaySurface">
    <ListBox x:Name="MenuList" Visibility="Visible"  
             Canvas.Top="{Binding ElementName=MenuList, Path=ActualHeight, 
             Converter={StaticResource LamdaConv}, ConverterParameter='val=>-val'}">

         <ListBoxItem Content="item 1" />
         <ListBoxItem Content="item 2" />
         <ListBoxItem Content="item 3" />
         <ListBoxItem Content="item 4" />
         <ListBoxItem Content="item 5" />
         <ListBoxItem Content="item 6" />
     </ListBox>
</Canvas>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-18 22:38:19

尝试使用绑定{Binding ActualHeight, RelativeSource={RelativeSource Self},Converter={StaticResource LamdaConv}, ConverterParameter='val=>-val'}

票数 1
EN

Stack Overflow用户

发布于 2010-05-18 21:16:16

在我看来,你在工作中使用了错误的控制。一个Grid可以不用做这些工作就能处理这个问题:

代码语言:javascript
复制
 <Grid>

    <Canvas x:Name="DisplaySurface">
    </Canvas>
    <ListBox HorizontalAlignment="Left" VerticalAlignment="Bottom" ...>
       <!-- items --->
    </ListBox>
</Grid> 

现在,ListBox始终显示在左下角。不仅如此,如果总的可用高度小于列表框中所有内容的高度,它将被限制在可用高度并显示滚动条。否则你的代码将不得不跳转来解决一些问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2856792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档