0

如何获得页面的高度?,即;页面中所有元素的高度。

例如,如果我有这个制作页面的 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>

原因:

我创建了一个自定义窗口,它将作为对话框消息显示给用户,该窗口包含一个框架,该框架又包含此页面。我正在尝试将窗口的高度固定为页面的高度。

我试过了:

myPage.Height; //NaN
myPage.ActualHeight; //0
4

3 回答 3

1

如果您想使 Window 的大小适合您的用户控件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" />

高度 - 指定窗口将自动设置其高度以适应其内容的高度,而不是宽度。

Edit: This will stretch your Window to fit the Frame, which hopefully is set to change with the widths/heights of your Page.

于 2012-11-30T18:44:06.763 回答
0

你在寻找

  SystemParameters.FixedFrameVerticalBorderWidth
  SystemParameters.FixedFrameHorizontalBorderHeight
  SystemParameters.WindowCaptionHeight

请检查这个msdn 链接

于 2012-11-30T18:11:28.857 回答
0

尝试

this.Height;<br/>
this.Width;
于 2012-11-30T18:39:27.437 回答