首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF中宽度和ActualWidth的区别是什么?

WPF中宽度和ActualWidth的区别是什么?
EN

Stack Overflow用户
提问于 2009-03-03 19:42:42
回答 6查看 57.1K关注 0票数 50

我目前正在使用WPF中的Panel,我注意到关于WidthHeight属性,还有另外两个属性称为ActualWidthActualHeight

ActualWidth 获取此元素的呈现宽度。这是一个依赖项属性。(继承自FrameworkElement.) Width 获取或设置元素的宽度。这是一个依赖项属性。(继承自FrameworkElement.)

参考资料:http://msdn.microsoft.com/en-us/library/system.windows.controls.panel_members.aspx

有谁能指出两者的不同之处,以及何时使用两者之一?

EN

回答 6

Stack Overflow用户

发布于 2010-10-25 02:34:56

当我想将一个元素的宽度或高度绑定到另一个元素时,我发现ActualWidth最有用。

在这个简单的例子中,我有两个按钮并排排列,下面的注释被限制为包含这两个按钮的StackPanel的宽度。

代码语言:javascript
复制
<StackPanel>

    <StackPanel Margin="0,12,0,0" Orientation="Horizontal" Name="buttonPanel" HorizontalAlignment="Left" >
         <Button Content="Yes - Arm the missile" FontWeight="Bold" HorizontalAlignment="Left"/>
         <Button Content="No - Save the world" HorizontalAlignment="Left" Margin="7,0,0,0"/>
    </StackPanel>

    <TextBlock Text="Please choose whether you want to arm the missile and kill everybody, or save the world by deactivating the missile." 
               Width="{Binding Path=ActualWidth,ElementName=buttonPanel}" Margin="0,5,0,0" HorizontalAlignment="Left" TextWrapping="Wrap"/>

</StackPanel>
票数 11
EN

Stack Overflow用户

发布于 2010-10-21 16:20:57

ActualWidth用于填充值,因此无论何时您需要知道这个数字,您都可以调用Actualwidth而不是宽度,并避免计算。

编辑:删除边距b/c,它不是ActualWidth的一部分。

票数 7
EN

Stack Overflow用户

发布于 2009-03-03 19:46:41

ActualWidth由渲染系统设置,根据其他元素的宽度和总体大小约束可能有所不同。因此,它是无法改变的。Width是一个可以更改的属性,应该用来增加或缩小元素的宽度。

来自MSDN

此属性是基于其他宽度输入和布局系统的计算值。该值是由布局系统本身根据实际呈现传递设置的,因此可能稍微落后于作为输入更改基础的属性(如Width )的设置值。

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

https://stackoverflow.com/questions/607827

复制
相关文章

相似问题

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