1

我即将开始在 windows phone 7 中开发应用程序。但我有一些疑问。

在此处输入图像描述

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

在第一部分有 3 个按钮,并且在整个应用程序中它们的设计没有变化。在 iPhone 中,我使用了 UINavigationBar 控件。但是 Windows Phone 中是否有任何控件,例如 iPhone 中的 UINavigationBar?

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

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

哪种方式可以有效地启动应用程序开发?任何人都可以建议我可以在 Windows Phone 中为此目的使用的控件或想法吗?

谢谢。

4

3 回答 3

3

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

我建议在设计应用程序之前先查看一些适用于 Windows Phone 的设计资源,这样你就可以构建适合该平台的东西。

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

于 2012-05-16T12:55:06.123 回答
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>

这是它在设计器中的外观:

示例 Windows Phone 7 应用程序

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

对于第一排按钮,我使用了水平<StackPanel>,但您可能希望使用其他东西来更好地控制布局和对齐方式。

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

于 2012-05-16T12:24:12.797 回答
1

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

MSDN

于 2012-05-16T12:49:57.793 回答