Silverlight:在屏幕顶部放置一个元素?

时间:2010-11-11 19:26:46

标签: silverlight windows-phone-7

在Windows Phone 7中,在屏幕的最顶部显示加载指示器是惯用的。 (我认为装载指示器和顶部之间没有填充物。)

Silverlight中最好的方法是什么?这个XAML有效,排序:

<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <!-- this needs to be at the very top of the screen -->
    <ProgressBar x:Name="LoadingProgressBar" IsIndeterminate="True" Style="{StaticResource PerformanceProgressBar}" Grid.Row="0"/>

    <controls:Pivot Title="SECTIONS" x:Name="pivotControl" SelectionChanged="pivotControl_SelectionChanged" Grid.Row="1" />
</Grid>

它将ProgressBar放置在屏幕顶部附近,但仍有空间。我可以应用负余量,但我怀疑有更优雅的方式。这样做的首选方式是什么?

3 个答案:

答案 0 :(得分:2)

查看PhoneApplicationPage的定义。 shell:SystemTray.IsVisible是否设为True?

我的猜测是你已将它设置为True(默认值)。

如果是这种情况,则会保留页面顶部的空格以显示系统托盘。 (其中包括信号强度,电池电量指示器,时钟等)如果将此更改为False,则布局引擎将使用控件的所有可用空间。

缺点是用户在您的应用运行时无法访问托盘。

虽然在屏幕顶部放置一个等待指示灯很常见,但在屏幕中间看到它也并不罕见。根据您实际在页面上显示的内容,如果您想保留查看系统托盘的功能,可以考虑这一点。

或者,您可以使用完全自定义的等待光标。

答案 1 :(得分:0)

您的代码适合我。我粘贴了您的代码,将Pivot控件替换为按钮。

alt text

你在看什么?

答案 2 :(得分:0)

Windows内置电话控制模板是地铁样式。正如你所说,你可以使用负边距(或我已经看过的控件中的填充)... ... iirc,进度条具有样式,如果高度不是最小值73像素,则进度条被遮挡

或者你可以通过重新混合控制混合并控制构成控件的组成部分中的属性来找到它的来源。

要执行此操作,请在混合中单击控件,编辑模板,编辑副本,然后再离开。