gpt4 book ai didi

c# - 计算 PivotItem 的高度?

转载 作者:太空宇宙 更新时间:2023-11-03 11:13:25 25 4
gpt4 key购买 nike

以下是 Windows Phone 8 应用程序的非常基本的布局。我有一个带有 PivotItemPivotControlPivotControl 的 header 以红色标出,而 PivotItem 以绿色标出。我要让 Canvas 占据 PivotItem 的 100%,所以我需要能够相应地计算它的尺寸(因为高度/宽度将决定尺寸以及其他控件的放置)。

所以现在我可以用这个计算我的 PivotItem 的宽度,其中 margin 是所有四个边的边距量(左边乘以 2,右):

double width = Application.Current.Host.Content.ActualWidth - (margin * 2);

高度比较困难,因为我需要用总屏幕高度减去 StatusBar 高度和标题高度(我的图像中的红色矩形)。

有谁知道如何获取 PivotItem 的高度?有没有比像我这样计算它更简单的方法?现在 HeightActualHeight 属性都是 0.0。

enter image description here

最佳答案

如果我没理解错的话,你有一个 Canvas 占据了整个 PivotItem?像这样:

<phone:Pivot>
<phone:Pivot.Items>
<phone:PivotItem Header="menu">
<Canvas x:Name="Canvas" />
</phone:PivotItem>
<phone:PivotItem Header="game" />
</phone:Pivot.Items>
</phone:Pivot>

如果是这样,检索 Canvas 的高度就非常简单了:

Debug.WriteLine(this.Canvas.ActualHeight);

注意:ActualHeight 属性不会在 Loaded 事件之前填充。因此,如果您尝试从构造函数或 OnNavigatedTo 方法中读取它,该属性将等于 0。

完整的 XAML 代码:

<phone:PhoneApplicationPage 
x:Class="WP7ForumTest.Page3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
Loaded="Page_Loaded">

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<phone:Pivot>
<phone:Pivot.Items>
<phone:PivotItem Header="menu">
<Canvas x:Name="Canvas" />
</phone:PivotItem>
<phone:PivotItem Header="game" />
</phone:Pivot.Items>
</phone:Pivot>
</Grid>

</phone:PhoneApplicationPage>

以及代码隐藏:

private void Page_Loaded(object sender, RoutedEventArgs e)
{
MessageBox.Show(this.Canvas.ActualHeight.ToString());
}

关于c# - 计算 PivotItem 的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13354828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com