我即将开始在Windows Phone 7中开发应用程序。但我在某些方面有疑问。
这是应用程序的GUI格式。该应用程序有很多页面。
第一部分有3个按钮,整个应用程序的设计没有变化。在iPhone中我使用了UINavigationBar控件。但是在iPhone手机中的UINavigationBar中是否有任何控制权?
在第二部分中,内容总是在变化。
第三部分有一些按钮。但是按钮功能在不同的页面中是不同的。并且还需要在某些页面中删除或添加额外的按钮。在iPhone中我使用了UITabBar控件。
哪种方式可以有效地启动应用开发?任何人都可以建议我可以在Windows手机中使用控件或想法吗?
感谢。
答案 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>
以下是它在设计师中的表现:
在这种情况下,主要内容(总是在变化)是<TextBlock>
,但您可以使用由其他控件或UserControl
组成的面板。如果将多个面板/控件放在同一个网格单元格中,则可以通过隐藏除一个面板/控件之外的所有面板/控件来完全更改布局。
对于顶行按钮,我使用了水平<StackPanel>
,但您可能希望使用其他内容来更好地控制布局和对齐。
对于底行按钮,您应该使用appbar,它是标准Windows Phone 7用户体验的一部分。
答案 2 :(得分:1)
Pivot
怎么样?它可能适合您的需求。技术上用于以不同方式显示相同数据。