如何获得Page?的高度,即;页面中所有元素的高度。
例如,如果我有这个制作页面的XAML,我怎样才能在运行时获得高度?
<Page x:Class="DialogViews.SomeError"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400"
Title="SomeMessage">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="50" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Label Grid.Row="0" Style="{StaticResource ResourceKey=DialogTitleError}">A Problem</Label>
<TextBlock Grid.Row="1" Style="{StaticResource ResourceKey=DialogMsg}">
Some message to user
</TextBlock>
<Label Grid.Row="2" HorizontalAlignment="Right">
<Hyperlink>
Some link for info
</Hyperlink>
</Label>
</Grid>
</Page>
原因:
我创建了一个自定义窗口,它将向用户显示一个Dialog消息,Window包含一个Frame,它反过来包含这个Page。我正在尝试将窗口的高度固定为Page的高度。
我尝试过:
myPage.Height; //NaN
myPage.ActualHeight; //0
答案 0 :(得分:1)
如果您希望将窗口大小调整为用户控件Page
,那么我建议您尝试使用Window的SizeToContent属性。
<Window x:Class "MyNameSpace.MyWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
SizeToContent="Height" />
高度 - 指定窗口将自动设置其高度以适合其内容的高度,但不是宽度。
编辑:这将拉伸您的窗口以适应框架,希望设置为根据您的页面的宽度/高度更改。
答案 1 :(得分:0)
您在寻找
吗? SystemParameters.FixedFrameVerticalBorderWidth
SystemParameters.FixedFrameHorizontalBorderHeight
SystemParameters.WindowCaptionHeight
请检查此msdn link
答案 2 :(得分:0)
尝试
this.Height;<br/>
this.Width;