即将开始在Windows Phone 7中开发应用程序的问题

时间:2012-05-16 10:33:21

标签: silverlight windows-phone-7

我即将开始在Windows Phone 7中开发应用程序。但我在某些方面有疑问。

enter image description here

这是应用程序的GUI格式。该应用程序有很多页面。

第一部分有3个按钮,整个应用程序的设计没有变化。在iPhone中我使用了UINavigationBar控件。但是在iPhone手机中的UINavigationBar中是否有任何控制权?

在第二部分中,内容总是在变化。

第三部分有一些按钮。但是按钮功能在不同的页面中是不同的。并且还需要在某些页面中删除或添加额外的按钮。在iPhone中我使用了UITabBar控件。

哪种方式可以有效地启动应用开发?任何人都可以建议我可以在Windows手机中使用控件或想法吗?

感谢。

3 个答案:

答案 0 :(得分:3)

您似乎正在尝试按照iPhone应用程序的方式构建Windows PHone应用程序。这通常会导致Windows Phone体验非常糟糕,并且导致用户感到沮丧,因为应用程序的行为与平台上的其他应用程序的行为方式不同(因此他们期望您的应用程序的行为方式)。

我建议您在设计应用之前先查看一些Design Resources for Windows Phone,这样您就可以构建适合该平台的内容。

几点建议:
- 通常,页面[顶部]上的浮动按钮看起来很糟糕。这不是平台上的应用程序执行导航的方式(与iOS不同)。 Windows Phone应用程序应使用“hub and spoke”模型进行页面导航 - 在页面中包含内容可能会导致对后退按钮的预期行为产生一些混淆。请务必小心,因为不一致,不可预测或非标准的后退按钮行为可能导致应用程序无法通过认证。

答案 1 :(得分:1)

如果您不想创建用户可以在一个页面之间导航的应用程序(并使用后退按钮返回),您可以基于单个页面创建应用程序。如果您创建 Windows Phone应用程序项目,这是Visual Studio为您创建的内容的某种修改版本。

    <phone:PhoneApplicationPage 
        x:Class="PhoneApp1.MainPage"
        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"
        mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="728"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}">

        <Grid Background="Transparent">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition/>
            </Grid.RowDefinitions>

            <StackPanel Margin="12,17,0,28">
                <TextBlock
                    Text="MY APPLICATION"
                    Style="{StaticResource PhoneTextNormalStyle}"/>
                <TextBlock
                    Text="page name"
                    Margin="9,-7,0,0"
                    Style="{StaticResource PhoneTextTitle1Style}"/>
            </StackPanel>

            <Grid Grid.Row="1" Margin="12,0,12,0">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition/>
                </Grid.RowDefinitions>

                <!-- The three buttons -->
                <StackPanel Orientation="Horizontal">
                    <Button Content="Button 1"/>
                    <Button Content="Button 2"/>
                    <Button Content="Button 3"/>
                </StackPanel>

                <!-- The main content -->
                <TextBlock Grid.Row="1"
                    Text="Content always changing"
                    Style="{StaticResource PhoneTextTitle1Style}"
                    TextWrapping="Wrap"
                    TextAlignment="Center"/>

            </Grid> 
        </Grid>

        <phone:PhoneApplicationPage.ApplicationBar>
            <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
                <shell:ApplicationBarIconButton
                    IconUri="/Images/appbar_button1.png"
                    Text="Button 1"/>
                <shell:ApplicationBarIconButton
                    IconUri="/Images/appbar_button2.png"
                    Text="Button 2"/>
                <shell:ApplicationBar.MenuItems>
                    <shell:ApplicationBarMenuItem Text="MenuItem 1"/>
                    <shell:ApplicationBarMenuItem Text="MenuItem 2"/>
                </shell:ApplicationBar.MenuItems>
            </shell:ApplicationBar>
        </phone:PhoneApplicationPage.ApplicationBar>

    </phone:PhoneApplicationPage>

以下是它在设计师中的表现:

Sample Windows Phone 7 application

在这种情况下,主要内容(总是在变化)是<TextBlock>,但您可以使用由其他控件或UserControl组成的面板。如果将多个面板/控件放在同一个网格单元格中,则可以通过隐藏除一个面板/控件之外的所有面板/控件来完全更改布局。

对于顶行按钮,我使用了水平<StackPanel>,但您可能希望使用其他内容来更好地控制布局和对齐。

对于底行按钮,您应该使用appbar,它是标准Windows Phone 7用户体验的一部分。

答案 2 :(得分:1)

Pivot怎么样?它可能适合您的需求。技术上用于以不同方式显示相同数据。

MSDN