FrameworkElement.ActualHeight 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取 FrameworkElement 的呈现高度。 请参阅“备注”。
public:
property double ActualHeight { double get(); };
double ActualHeight();
public double ActualHeight { get; }
var double = frameworkElement.actualHeight;
Public ReadOnly Property ActualHeight As Double
属性值
double
对象的高度(以像素为单位)。 默认值为 0。 如果对象尚未加载且尚未参与呈现 UI 的布局传递,则可能会遇到默认值。
示例
此示例演示一个常见方案,即在 UI 中使用一个或多个元素的 ActualHeight 设置其中一个涉及的元素或其他 元素的高度, 以便在操作后保持相同的净高度。 这通常是为了响应在打开或关闭元素或显示区域更改时调用的事件处理程序。
void SDKSample::WebViewControl::PageWithAppBar::BottomAppBar_Opened(Object^ sender, Object^ obj)
{
// AppBar has Opened so we need to put the WebView back to its
// original size/location.
AppBar^ bottomAppBar = (AppBar^) sender;
if (bottomAppBar != nullptr)
{
// Force layout so that we can guarantee that our AppBar's
// actual height has height
this->UpdateLayout();
// Get the height of the AppBar
double appBarHeight = bottomAppBar->ActualHeight;
// Reduce the height of the WebView to allow for the AppBar
WebView8->Height = WebView8->ActualHeight - appBarHeight;
// Translate the WebView in the Y direction to reclaim the space occupied by the AppBar.
TranslateYOpen->To = -appBarHeight / 2.0;
// Run our translate animation to match the AppBar
OpenAppBar->Begin();
}
}
void BottomAppBar_Opened(object sender, object e)
{
// AppBar has Opened so we need to put the WebView back to its
// original size/location.
AppBar bottomAppBar = sender as AppBar;
if (bottomAppBar != null)
{
// Force layout so that we can guarantee that our AppBar's
// actual height has height
this.UpdateLayout();
// Get the height of the AppBar
double appBarHeight = bottomAppBar.ActualHeight;
// Reduce the height of the WebView to allow for the AppBar
WebView8.Height = WebView8.ActualHeight - appBarHeight;
// Translate the WebView in the Y direction to reclaim the space occupied by
// the AppBar. Notice that we translate it by appBarHeight / 2.0.
// This is because the WebView has VerticalAlignment and HorizontalAlignment
// of 'Stretch' and when we reduce its size it reduces its overall size
// from top and bottom by half the amount.
TranslateYOpen.To = -appBarHeight / 2.0;
// Run our translate animation to match the AppBar
OpenAppBar.Begin();
}
}
注解
注意
尽管它具有 ActualHeightProperty 支持字段,但 ActualHeight 不会引发属性更改通知,应将其视为常规 CLR 属性,而不是依赖属性。
ActualHeight 是计算属性。 计算是布局传递的结果,其中对象根据其连续布局父级的逻辑在布局中调整大小。 有关详细信息,请参阅 使用 XAML 定义布局。
由于布局系统的操作,ActualHeight 可能会对值进行多次或增量报告更改。 如果在布局仍在迭代时获取值,布局系统可能仍在计算子对象所需的空间度量值、父对象的约束等。 由于该值基于实际的呈现传递,因此它可能略落后 于 Height 等属性的设置值,而 Height 可能是输入更改的基础。
出于 ElementName 绑定的目的,ActualHeight 在更改 (时不会发布更新,因为它具有异步和运行时计算特性) 。 请勿尝试将 ActualHeight 用作 ElementName 绑定的绑定源。 如果方案需要基于 ActualHeight 进行更新,请使用 SizeChanged 处理程序。