您的位置:首页 > 编程语言 > C#

2015元旦第一弹——WP8.1应用程序栏(C#后台代码编写)

2015-01-01 15:22 337 查看
//第一次写博文,以后还请各位道友互相关照哈。废话不多说,直接进入正题。

相信大家对于如何在XAML添加应用程序栏应该很清楚,不清楚的话,可以打开新建个Pviot应用 就有系统自带的菜单栏。 本文主要讲的是如何在C#后台进行动态添加应用程序栏以及菜单栏最小化。

首先新建一个空白应用,然后在Gird下键入以下代码:

<Pivot Name="pivot" SelectionChanged="Pivot_SelectChanged">
<PivotItem Header="First">

</PivotItem>

<PivotItem Header="Second">

</PivotItem>

<PivotItem Header="Third">

</PivotItem>
</Pivot>


然后在MainPage.xaml.cs定义3个菜单:

CommandBar refresh;
CommandBar add;
CommandBar min;


之后,我们定一个方法PrepareAppBars()来实现应用程序栏,这个方法要在OnNavigatedTo()或者构造函数内或者页面加载内实现,这里我选择在OnNavigatedTo()内实现:

protected override void OnNavigatedTo(NavigationEventArgs e)
{
// TODO: Prepare page for display here.
PrepareAppBars();
// TODO: If your application contains multiple pages, ensure that you are
// handling the hardware Back button by registering for the
// Windows.Phone.UI.Input.HardwareButtons.BackPressed event.
// If you are using the NavigationHelper provided by some templates,
// this event is handled for you.
}


  

private void PrepareAppBars()
{

//Pivot第一个页面菜单栏
refresh = new CommandBar();
refresh.IsOpen = true;
AppBarButton RefreshBtn = new AppBarButton() { Icon = new BitmapIcon() { UriSource = new Uri("ms-appx:///Assets/refresh.png") } };
RefreshBtn.Label = "刷新";
RefreshBtn.Click += RefreshBtn_Click;
RefreshBtn.IsEnabled = true;

// 相似的第二个菜单
AppBarButton SecondBtn = new AppBarButton() { Icon = new BitmapIcon() { UriSource = new Uri("ms-appx:///Assets/add.png") } };
SecondBtn.Label = "添加";
SecondBtn.Click += SecondBtn_Click;
SecondBtn.IsEnabled = true;

AppBarButton secondCommand = new AppBarButton();
secondCommand.Label = "菜单一";
secondCommand.Click += secondCommand_Click;

AppBarButton secondCommand2 = new AppBarButton();
secondCommand2.Label = "菜单二";
secondCommand2.Click += secondCommand2_Click;
refresh.SecondaryCommands.Add(secondCommand);
refresh.SecondaryCommands.Add(secondCommand2);

refresh.PrimaryCommands.Add(RefreshBtn);
refresh.PrimaryCommands.Add(SecondBtn);

//Pivot第二个页面菜单栏
add = new CommandBar();
add.IsOpen = true;

AppBarButton Pivot_SecondAppBar = new AppBarButton() { Icon = new BitmapIcon() { UriSource = new Uri("ms-appx:///Assets/add.png") } };
Pivot_SecondAppBar.Label = "添加";
Pivot_SecondAppBar.Click += Pivot_SecondAppBar_Click;
SecondBtn.IsEnabled = true;
add.PrimaryCommands.Add(Pivot_SecondAppBar);

//Pivot第三个页面菜单栏最小化
min = new CommandBar();
AppBarButton thirdCommand = new AppBarButton();
thirdCommand.Label = "菜单三";
thirdCommand.Click += thirdCommand_Click;
min.SecondaryCommands.Add(thirdCommand);

min.ClosedDisplayMode = AppBarClosedDisplayMode.Minimal;

}


  接着,我们定义 应用程序栏的所有单机事件:

void thirdCommand_Click(object sender, RoutedEventArgs e)
{
MessageDialog msg = new MessageDialog("菜单三");
msg.ShowAsync();
}

void Pivot_SecondAppBar_Click(object sender, RoutedEventArgs e)
{
MessageDialog msg = new MessageDialog("Pivot第二个页面添加");
msg.ShowAsync();
}

void SecondBtn_Click(object sender, RoutedEventArgs e)
{
MessageDialog msg = new MessageDialog("添加");
msg.ShowAsync();
}

void secondCommand2_Click(object sender, RoutedEventArgs e)
{
MessageDialog msg = new MessageDialog("菜单二");
msg.ShowAsync();
}

void secondCommand_Click(object sender, RoutedEventArgs e)
{
MessageDialog msg = new MessageDialog("菜单一");
msg.ShowAsync();
}

void RefreshBtn_Click(object sender, RoutedEventArgs e)
{
MessageDialog msg = new MessageDialog("刷新");
msg.ShowAsync();
}


  做完这些之后呢,我们就可以在Pivot_SelectChanged页面选择的时候加载指定的应用程序栏了:

private void Pivot_SelectChanged(object sender, SelectionChangedEventArgs e)
{
switch (pivot.SelectedIndex)
{
case 0:
BottomAppBar = refresh;
break;
case 1:
BottomAppBar = add;
break;
case 2:
BottomAppBar = min;
break;
}
}


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: