windowsphone开发系统托盘和应用栏.docx

上传人:b****8 文档编号:11241439 上传时间:2023-02-26 格式:DOCX 页数:15 大小:180.67KB
下载 相关 举报
windowsphone开发系统托盘和应用栏.docx_第1页
第1页 / 共15页
windowsphone开发系统托盘和应用栏.docx_第2页
第2页 / 共15页
windowsphone开发系统托盘和应用栏.docx_第3页
第3页 / 共15页
windowsphone开发系统托盘和应用栏.docx_第4页
第4页 / 共15页
windowsphone开发系统托盘和应用栏.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

windowsphone开发系统托盘和应用栏.docx

《windowsphone开发系统托盘和应用栏.docx》由会员分享,可在线阅读,更多相关《windowsphone开发系统托盘和应用栏.docx(15页珍藏版)》请在冰豆网上搜索。

windowsphone开发系统托盘和应用栏.docx

windowsphone开发系统托盘和应用栏

系统托盘

系统托盘仅仅显示一些系统的状态,有时候我们要隐藏它,用下面的代码:

1

this.SetValue(SystemTray.IsVisibleProperty,!

(bool)this.GetValue(SystemTray.IsVisibleProperty));

注意不要忘了引入Microsoft.Phone.Shell这一命名空间。

应用程序栏

1、使用XAML生成应用程序栏

Windows Phone SDK附带的页面模板包含被注释掉的示例应用程序栏的XAML。

取消XAML的注释以创建应用程序栏。

如:

01

PhoneApplicationPage.ApplicationBar>

02

    

ApplicationBar IsVisible="True" IsMenuEnabled="True">

03

        

ApplicationBarIconButton IconUri="/Images/appbar_button1.png"Text="Button1"/>

04

        

ApplicationBarIconButton IconUri="/Images/appbar_button2.png"Text="Button2"/>

05

        

ApplicationBar.MenuItems>

06

            

ApplicationBarMenuItem Text="MenuItem1"/>

07

            

ApplicationBarMenuItem Text="MenuItem2"/>

08

        

ApplicationBar.MenuItems>

09

    

ApplicationBar>

10

PhoneApplicationPage.ApplicationBar>

增删改点内容就可以用了,要注意引用的图片需要把属性修改为content。

2、使用C#生成应用程序栏

有时应用程序栏需要根据用户的操作来改变应用程序栏的一些设置,这样通过XAML生成应用程序栏就行不通了,所以需要通过C#来生成应用程序栏。

(1)在代码的顶部,添加Microsoft.Phone.Shell这一命名空间。

1

using Microsoft.Phone.Shell;

(2)在页面的构造函数中,在对InitializeComponent的调用之后,添加以下代码。

该代码初始化新的 ApplicationBar 对象并将该对象分配给页面的 ApplicationBar 属性。

1

ApplicationBar= new ApplicationBar();

(3)设置所需的应用程序栏属性。

1

ApplicationBar.Mode=ApplicationBarMode.Default;

2

ApplicationBar.Opacity=1.0;

3

ApplicationBar.IsVisible= true;

4

ApplicationBar.IsMenuEnabled= true;

(4)根据需要创建一个或多个 ApplicationBarIconButton 对象。

设置图标图像和按钮文本,然后将它们添加到应用程序栏。

如果您未设置按钮文本,则会发生运行时异常。

1

ApplicationBarIconButtonbutton1= new ApplicationBarIconButton();

2

button1.IconUri= new Uri("/Images/YourImage.png",UriKind.Relative);

3

button1.Text= "button1";

4

ApplicationBar.Buttons.Add(button1);

(5)菜单项是可选的。

根据需要创建一个或多个 ApplicationBarMenuItem 对象。

设置文本,然后将它们添加到应用程序栏。

1

ApplicationBarMenuItemmenuItem1= new ApplicationBarMenuItem();

2

menuItem1.Text= "menuitem1";

3

ApplicationBar.MenuItems.Add(menuItem1);

(6)下面是一个已完成的应用程序栏示例。

01

public MainPage()

02

{

03

    InitializeComponent();

04

 

05

    ApplicationBar= new ApplicationBar();

06

 

07

    ApplicationBar.Mode=ApplicationBarMode.Default;

08

    ApplicationBar.Opacity=1.0;

09

    ApplicationBar.IsVisible= true;

10

    ApplicationBar.IsMenuEnabled= true;

11

 

12

    ApplicationBarIconButtonbutton1= new ApplicationBarIconButton();

13

    button1.IconUri= new Uri("/Images/YourImage.png",UriKind.Relative);

14

    button1.Text= "button1";

15

    ApplicationBar.Buttons.Add(button1);

16

 

17

    ApplicationBarMenuItemmenuItem1= new ApplicationBarMenuItem();

18

    menuItem1.Text= "menuitem1";

19

    ApplicationBar.MenuItems.Add(menuItem1);

20

}

(7)对于每个图标按钮和菜单项,确定用户单击时要调用的事件。

下面是来自上一过程的、确定了单击事件的应用程序栏的示例。

01

ApplicationBarIconButtonbutton1= new ApplicationBarIconButton();

02

button1.IconUri= new Uri("/Images/YourImage.png",UriKind.Relative);

03

button1.Text= "button1";

04

ApplicationBar.Buttons.Add(button1);

05

button1.Click+= new EventHandler(button1_Click);

06

 

07

ApplicationBarMenuItemmenuItem1= new ApplicationBarMenuItem();

08

menuItem1.Text= "menuitem1";

09

ApplicationBar.MenuItems.Add(menuItem1);

10

menuItem1.Click+= new EventHandler(menuItem1_Click);

(8)对于每个图标按钮和菜单项,添加用户单击时要调用的事件。

在页面类中添加代码。

下面是来自上一过程的应用程序栏的单击事件示例。

01

private void button1_Click(object sender,EventArgse)

02

{

03

    MessageBox.Show("Button1works!

");

04

    //Doworkforyourapplicationhere.

05

}

06

 

07

private void menuItem1_Click(object sender,EventArgse)

08

{

09

    MessageBox.Show("Menuitem1works!

");

10

    //Doworkforyourapplicationhere.

11

}

3、透明度

透明度可以设置为0到1的数值,但是推荐使用0,0.5或者是1。

如:

1

shell:

ApplicationBarIsVisible=“True”IsMenuEnabled=“True”Opacity=“0.5”

4、使用ExpressionBlend创建应用程序栏

(1)先解开注释掉的ApplicationBar;

(2)右键该页面使用ExpressionBlend打开;

 

(3)打开此页面后,看到ExpressionBlend左边的面板上ObjectsandTimeline面板;

 

(4)如上面板的内容,微软为我们默认添加了两个ApplicationBarIconButton(最多四个)和两个ApplicationBarMenuItem,下面编辑这四个节点的内容,并为其添加点击事件和图片内容。

点击第一个ApplicationBarMenuItem,中间的显示图效果自动定位并显示,如下图:

 

(5)视角右移到右上角,并选中第一个选项卡:

元素属性,面板的最右边有两个选择图标。

如下图所示,蓝色箭头代码元素的基本属性(包括Name和Text,其他UI有更多属性这里不详细介绍),红色箭头代表该元素的事件;

 

(6)好了,认识了一些基本的原理,下面来改改吧,将Name改为“AboutApplicationBar”。

然后,将对应的Text改为“关于”。

转到事件面板,双击它,它会自动帮我们在CS代码里面生成一个事件句柄,像这样:

 

(7)根据上面的操作,将下面的ApplicationBarMenuItem改为“查看图片”的菜单。

下面来做ApplicationBarIconButton,具体操作跟上面是一致的,唯一区别的是ApplicationBarIconButton需要一个图片资源,利用ExpresssionBlend可以很方便的为其添加图片资源,并且这些图片资源都是微软建议使用的图片,选中ApplicationBarIconButton会看到面板属性比上面的MenuItem多了一个属性,如下图这个属性是一个图片的地址,并且它是一个下拉框允许我们选择,看看图吧:

ps:

这些图片位于C:

\ProgramFiles\MicrosoftSDKs\WindowsPhone\v7.0\Icons目录。

补充:

(1)由于应用程序栏不是Silverlight控件,并不继承自FrameworkElement,因此应用程序栏不支持某些常见的控件功能,如数据绑定。

这意味着不能通过使用XAML格式的名称属性来更改图标按钮和菜单项。

如果您希望在运行时动态修改文本或图标,则应该使用C#或VisualBasic创建应用程序栏,详见上面的通过C#生成应用程序栏。

 

(2)在有些情况下我们会需要提供横跨整个应用程序的通用功能,这样,如果一个一个页面的显示ApplicationBar,这样效率很低,所以可以写一个通用的ApplicationBar,提供给整个应用程序使用。

由于是提供给整个应用程序使用,所以需要在App.xaml注册,如:

01

--注册应用程序栏-->

02

        

ApplicationBar x:

Key="MainAppBar" IsVisible="True">

03

            

--菜单项Abou-->

04

            

ApplicationBar.MenuItems>

05

                

ApplicationBarMenuItem Text="About"Click="ApplicationBarMenuItem_Click"/>

06

            

ApplicationBar.MenuItems>

07

             

08

            

--应用程序条按钮-->

09

            

ApplicationBar.Buttons>

10

                

ApplicationBarIconButton Text="Web" IconUri="ie_icon.png"Click="ApplicationBarIconButton_Click"/>

11

                

ApplicationBarIconButton Text="Images"IconUri="pictures_Icon.png" Click="ImageEvent_Click"/>

12

            

ApplicationBar.Buttons>

13

        

ApplicationBar>

进入APP.xaml.cs在自动生成的事件中,键入代码:

01

private void ApplicationBarMenuItem_Click(object sender,EventArgse)

02

        {

03

            PhoneApplicationFrameroot=Application.Current.RootVisual asPhoneApplicationFrame;

04

            root.Navigate(new Uri("/About",UriKind.Relative));

05

        }

06

 

07

        private void ApplicationBarIconButton_Click(object sender,EventArgse)

08

        {

09

 

10

        }

11

 

12

        private void ImageEvent_Click(object sender,EventArgse)

13

        {

14

            PhoneApplicationFrameroot=Application.Current.RootVisual asPhoneApplicationFrame;

15

            root.Navigate(new Uri("/Pictures",UriKind.Relative));

16

        }

这样ApplicationBar就已经注册好了,在需要显示应用程序栏的页面的phone:

PhoneApplicationPage节点指定ApplicationBar来源,比如本文的指定方式:

01

PhoneApplicationPage

02

    x:

Class="DataBind.MainPage"

03

    xmlns="

04

    xmlns:

x="

05

    xmlns:

phone="clr-namespace:

Microsoft.Phone.Controls;assembly=Microsoft.Phone"

06

    xmlns:

shell="clr-namespace:

Microsoft.Phone.Shell;assembly=Microsoft.Phone"

07

    xmlns:

d="

08

    xmlns:

mc="http:

//schemas.openxmlformats.org/markup-compatibility/2006"

09

    mc:

Ignorable="d" d:

DesignWidth="480" d:

DesignHeight="768"

10

    FontFamily="{StaticResourcePhoneFontFamilyNormal}"

11

    FontSize="{StaticResourcePhoneFontSizeNormal}"

12

    Foreground="{StaticResourcePhoneForegroundBrush}"

13

    SupportedOrientations="Portrait" Orientation="Portrait"

14

    shell:

SystemTray.IsVisible="True"

15

    ApplicationBar="{StaticResourceMainAppBar}"

16

    >

原文链接:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1