关于api的参考:node
空间在下面的命名空间内;git
项目构成:web
程序导航:sql
frame的栈结构:数据库
属性和方法:编程
项目运行:canvas
即时窗口中:c#
页面跳转:
this.frame.navigate(typeof(页面名));windows
判断可否后退和前进:
if(this.frame.cangoback)api
if(this.frame.cangoforward)
页面返回:
this.frame.goback();
页面前进:
this.frame.goforward();
控件篇:
关于style:
<Grid.Resources>
</Window.Resources>
复制代码
1.3 若是在其余控件(例如Grid)的Resources中声明Style,则它的有效范围就是这个控件
复制代码
<Grid.Resources>
</Grid.Resources>
复制代码
注:
Style中若是只写了TargetType="Button",没有写x:Key,则Style有效范围内的Button的Style默认都是这个Style。
Style中若是写x:Key=“buttonStyle1”了,则引用此Style的方法为Style="{StaticResource buttonStyle1}"
注:将Style1同时指定给Button和TextBlock,Button会自动忽略不适用它们的属性Text。而两者公有的属性Height,Width,对两者都有效。
查看:
深刻WPF--Style
超连接hyperlinkbutton:
添加超连接;
textbox:
属性:
fontfamily 字体设置;
inputscope:键盘类型 枚举
acceptsreturn :是否支持enter换行 bool
header控件头: 文本说明
textwarping=warp 文本多行
关于fontweight bold 为加粗 light 为加亮 black为加黑
关于换行标签(至关于br标签):
关于run子标签
button按钮:
clickmode属性:
1,设置悬浮(hover)执行点击操做;
2,press, 压下执行
3,release 弹起执行
在c#中:
Button btn = new Button();//用新的Button覆盖以前的button
gd_main.Children.Add(btn);
Grid.SetRow(btn, i);
Grid.SetColumn(btn, j);
btn.Content = num.ToString();
btn.FontSize = 40;
btn.Background = new SolidColorBrush(Blue);
comobox下拉控件:
//不只仅能够添加文本,其它控件亦可
在c#中添加:
关于在c#中添加控件:
出现位置及大小设置:
对齐设置:
窗体中添加控件:
容器中添加控件:
各控件有所不一样:
comobox下拉控件:
//不只仅能够添加文本,其它控件亦可
在c#中添加:
布局控件中添加:
border边框控件:
属性:
borderbrush 为边框颜色画刷
borderthickness 为边框宽度
listview控件:
添加项目:
listView1.Items.Add(textBox1.Text);
删除项目:
listView1.Items.Remove(listView1.SelectedItems[listView1.SelectedItems[0].Index]);
关于数据绑定:
c#中的绑定语法:
lv_appear.ItemsSource = list;
xaml中的形式:
显示值的设置:
xaml中
关于选中项目的内容获取:
selecteditem指选取的对象。
selecteditem指选取的值。xaml须要设置
grid:
Grid.Columdefinitons来声明一列。
Height表示该行的高度,
width表示列的宽度。
其中”*”表示该行的高度和宽度基于可用空间(去掉其它固定高度行的高度)的加权比例.
stackpanel:
属性:
orientation: 排列方式 水平horizontal,垂直?
messagedialog:
即wpf的messagebox控件
括号内的属性:
(string1,string2)
//string1 表示显示的内容,string2表示显示的标题。
弹出提示框:
注:其中的await showAsync()为异步操做(?);
须要命名空间:using Windows.UI.Popups;
slider滑动控件:
flyout浮出控件:
flyout为button的默认click事件。
若是用于其余控件,则代码以下:
xaml:
<TextBox Header="请输入:" Name="txt_enter" Grid.Column="1" Grid.Row="1" Height="59" RenderTransformOrigin="0.513,4.86" Margin="10,148,45,0" TextChanged="txt_enter_TextChanged" >
<FlyoutBase.AttachedFlyout>
</FlyoutBase.AttachedFlyout>
c#:
private void txt_enter_TextChanged(object sender, TextChangedEventArgs e)
{
FrameworkElement ele = sender as FrameworkElement;
if (txt_enter.Text == "我是鲁新")
FlyoutBase.ShowAttachedFlyout(ele);
}
4.15 浮出控件(Flyout) 浮出控件(Flyout)是一个轻型的辅助型的弹出控件,一般会做为提示或者要求用户进行相关的交互来使用。Flyout控件与Windows Phone里面的弹出框MessageDialog是有很大区别的,首先Flyout控件是一个辅助控件,须要与其余控件结合起来才能使用,还有就是取消的规则不同,Flyout控件能够经过单击或在外部点击均可以轻松消除浮出控件。你可使用Flyout控件收集用户输入、显示与某个项目相关的更多信息或者要求用户确认某个操做。只有当为了响应用户点击时才应显示Flyout控件,也就是说Flyout控件并非直接就显示出来,而是必需要用户的操做才能呈现出来;当用户在弹出窗口外部点击时,Flyout控件就会消失,这也是Flyout控件默认的关闭规则。控件的XAML语法以下:
从控件的XAML语法中能够看出,Flyout控件自己就是一种辅助性的控件,它必需要与其余的控件结合起来使用才能够,那么一般会将Flyout控件附加到一个Button控件上直接相应Button控件的单击事件,所以Button控件拥有Flyout属性以简化附加和打开 Flyout 控件。单击按钮时,附加到按钮的浮出控件自动打开,这是不须要处理任何事件便可打开浮出控件。那么对于非Button控件是否是不能使用Flyout控件呢?那么答案确定是否认的,非Button控件也同样可使用Flyout控件,你也可使用FlyoutBase.AttachedFlyout附加属性,将 Flyout 控件附加到任何FrameworkElement对象。由于Flyout控件是必需要相应某个用户的操做的,Button控件是默认关联到了Click事件,若是是用FlyoutBase.AttachedFlyout附加属性来添加Flyout控件的这种状况下,就必须响应FrameworkElement控件上的交互,例如 Tapped,并在你的代码中打开Flyout控件。示例代码以下所示:
XAML代码:
C#代码:
private void TextBlock_Tapped(object sender, TappedRoutedEventArgs e){ FrameworkElement element = sender as FrameworkElement; if (element != null) { FlyoutBase.ShowAttachedFlyout(element); }}
从上文咱们知道了Flyout控件的两种建立方式,一种是经过Button控件的Flyout属性添加,另外的一种就是经过FlyoutBase.AttachedFlyout附件属性给任何的FrameworkElement对象来添加。那么在Windows Phone上Flyout控件一共有6种不一样的类型:Flyout、DatePickerFlyout、TimePickerFlyout、PickerFlyout、ListPickerFlyout和MenuFlyout。
(1)Flyout
Flyout类型表示用于处理自定义的浮出窗口的。Flyout控件常常会使用的事件是Closed、Opened和Opening事件,分别表示是在关闭、已打开和正在打开的三种时机触发的时间,在实际的程序开发中一般会在Closed事件处理程序中来获取用户的操做结果。同时这三种事件也是其余类型的Flyout控件的共性,因此你能够把Flyout类型的Flyout控件是最简单和最基本的Flyout控件。
(2)DatePickerFlyout和TimePickerFlyout
DatePickerFlyout类型表示是选择日期的浮出窗口;TimePickerFlyout表示是选择时间的浮出窗口。DatePickerFlyout与TimePickerFlyout类型的Flyout控件其实是和TimePicker与DatePicker控件是很是相似的,只不过Flyout控件能够监控到TimePicker与DatePicker控件的弹出时机。
(3)PickerFlyout和ListPickerFlyout
PickerFlyout表示是选择的浮出窗口,能够在页面底下添加确认的菜单栏用于用户进行确认;ListPickerFlyout表示是列表形式展现的浮出窗口,须要经过集合数据绑定来呈现列表的选择。PickerFlyout和ListPickerFlyout类型的Flyout控件是选择类型的浮出窗口,它们与其余的Flyout控件的主要区别是提供了选中确认的时间分别是PickerFlyout对应的Confirmed事件和ListPickerFlyout对应的ItemsPicked事件,而须要注意的是ListPickerFlyout须要经过数据绑定来实现选择的列表,关于数据绑定的知识在后续的章节还会进行更加详细的介绍。
(4)MenuFlyout
MenuFlyout表示是上下文菜单的选择浮出窗口。一个MenuFlyout会包含若干个MenuFlyoutItem,每一个MenuFlyoutItem表示一个选项,用户能够进行单击,同时同时经过MenuFlyoutItem的Click单击事件来处理用户的单击请求。MenuFlyout还有一个很大的特色就是当用户当其弹出的时候,会把程序页面的其余部分会往里面凹下去以强调弹出的MenuFlyout浮出层。
下面给出Flyout控件的示例:6种类型的Flyout控件的使用和Button与非Button控件对Flyout控件的集成。
代码清单4-15:Flyout控件(源代码:第4章\Examples_4_15)
1. MainPage.xaml文件主要代码 2. ------------------------------------------------------------------------------------------------------------------ 3. <StackPanel> 4. <!--最基本的Flyout 控件,自定义其浮出的内容--> 5. <Button Content="Show Flyout"> 6. <Button.Flyout> 7. <Flyout> 8. <StackPanel > 9. <TextBox PlaceholderText="请输入名字"/> 10. <Button HorizontalAlignment="Right" Content="肯定"/> 11. </StackPanel> 12. </Flyout> 13. </Button.Flyout> 14. </Button> 15. <!--浮出上下文菜单,点击菜单后改变当前按钮上的文本内容--> 16. <Button x:Name="menuFlyoutButton" Content="Show MenuFlyout" > 17. <Button.Flyout > 18. <MenuFlyout> 19. <MenuFlyoutItem Text="Option 1" Click="MenuFlyoutItem_Click"/> 20. <MenuFlyoutItem Text="Option 2" Click="MenuFlyoutItem_Click"/> 21. <MenuFlyoutItem Text="Option 3" Click="MenuFlyoutItem_Click"/> 22. </MenuFlyout> 23. </Button.Flyout> 24. </Button> 25. <!--浮出选择日期弹窗,点击肯定后会触发DatePicked事件,而后能够获取选中的日期--> 26. <Button Content="Show DatePicker" > 27. <Button.Flyout> 28. <Controls:DatePickerFlyout Title="选择日期:" DatePicked="DatePickerFlyout_DatePicked"/> 29. </Button.Flyout> 30. </Button> 31. <!--浮出选择时间弹窗,点击肯定后会触发TimePicked事件,而后能够获取选中的时间---> 32. <Button Content="Show TimePicker" > 33. <Button.Flyout> 34. <Controls:TimePickerFlyout Title="选择时间:" TimePicked="TimePickerFlyout_TimePicked"/> 35. </Button.Flyout> 36. </Button> 37. <!--浮出选择弹窗,显示底下的确认取消菜单栏而且处理其确认事件Confirmed---> 38. <Button Content="Show Picker" > 39. <Button.Flyout> 40. <Controls:PickerFlyout Confirmed="PickerFlyout_Confirmed" ConfirmationButtonsVisible="True"> 41. <TextBlock Text="你肯定吗?????" FontSize="30" Margin="0 100 0 0"/> 42. </Controls:PickerFlyout> 43. </Button.Flyout> 44. </Button> 45. <!--浮出选择列表弹窗,绑定集合的数据,处理选中的事件ItemsPicked--> 46. <Button Content="Show ListPicker"> 47. <Button.Flyout> 48. <Controls:ListPickerFlyout x:Name="listPickerFlyout" Title="选择手机品牌:" ItemsPicked="listPickerFlyout_ItemsPicked" > 49. <Controls:ListPickerFlyout.ItemTemplate> 50. <DataTemplate> 51. <TextBlock Text="{Binding}" FontSize="30"></TextBlock> 52. </DataTemplate> 53. </Controls:ListPickerFlyout.ItemTemplate> 54. </Controls:ListPickerFlyout> 55. </Button.Flyout> 56. </Button> 57. <!--使用附加属性FlyoutBase.AttachedFlyout来实现Flyout控件--> 58. <TextBlock Text="请点击我!" Tapped="TextBlock_Tapped" FontSize="20"> 59. <FlyoutBase.AttachedFlyout> 60. <Flyout> 61. <TextBox Text="你好!"/> 62. </Flyout> 63. </FlyoutBase.AttachedFlyout> 64. </TextBlock> 65. </StackPanel>
public MainPage() { this.InitializeComponent(); // 绑定ListPickerFlyout的数据源 listPickerFlyout.ItemsSource = new List<string> { "诺基亚", "三星", "HTC", "苹果", "华为" }; } // PickerFlyout的确认事件,在事件处理程序里面能够处理相关的确认逻辑 private async void PickerFlyout_Confirmed(PickerFlyout sender, PickerConfirmedEventArgs args) { await new MessageDialog("你点击了肯定").ShowAsync(); } // TimePickerFlyout的时间选中事件,在事件处理程序里面能够获取选中的时间 private async void TimePickerFlyout_TimePicked(TimePickerFlyout sender, TimePickedEventArgs args) { await new MessageDialog(args.NewTime.ToString()).ShowAsync(); } // DatePickerFlyout的日期选中事件,在事件处理程序里面能够获取选中的日期 private async void DatePickerFlyout_DatePicked(DatePickerFlyout sender, DatePickedEventArgs args) { await new MessageDialog(args.NewDate.ToString()).ShowAsync(); } // MenuFlyout的菜单选项的点击事件,点击后直接获取菜单栏的文本显示到按钮上 private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e) { menuFlyoutButton.Content = (sender as MenuFlyoutItem).Text; } // 经过FlyoutBase.ShowAttachedFlyout方法来展现出Flyout控件 private void TextBlock_Tapped(object sender, TappedRoutedEventArgs e) { FrameworkElement element = sender as FrameworkElement; if (element != null) { FlyoutBase.ShowAttachedFlyout(element); } } // ListPickerFlyout的选中事件,点击列表的某一项便会触发,在事件处理程序中一般会获取选中的项目来进行相关逻辑的处理 private async void listPickerFlyout_ItemsPicked(ListPickerFlyout sender, ItemsPickedEventArgs args) { if (sender.SelectedItem != null) { await new MessageDialog("你选择的是:" + sender.SelectedItem.ToString()).ShowAsync(); } }
datepicker日期选择控件:
属性:
date 选中的日期
事件:
datechange 改变日期
注意:
在date的属性转换为字符串类型时,会出现时分秒。解决办法为tostring方法添加格式:
dattepicker1.date.tostring(yyyy-mm-dd);
媒体控件:
注:
路径既能够是本地文件也能够是网络文件。
路径一旦赋值,文件当即播放。除非设置autoplay属性为flase。
listview控件:
菜单控件:
</Grid> <Page.BottomAppBar> <CommandBar Height="24">
//四个图标选项
//没有图标的附属选项
<CommandBar.SecondaryCommands>
</CommandBar.SecondaryCommands>
</Page.BottomAppBar>
canvas控件:
画板控件。
hub控件(中心应用容器):
<hub.background>
<hub.background>
.........
.........
pivot控件(透视应用容器):
与hub空间的不一样:
1,pivot控件背景图不随滑动而滑动。
2,hub控件是内容显露,pivot控件是标题显露。
控件属性继承:
父控件被子控件继承,若是子控件属性单独设置了,则覆盖夫控件。
注:background不能被继承。
图形控件:
通用属性:
fill: 填充颜色
stroke: 轮廓颜色
strokethickness:轮廓宽度
线性渐变画刷:
矩形:recttangle
椭圆:ellipse
直线:line
<line x1="" y1="" x2="" y2="" stroke="" strokethickness(宽度)=“” />
strokedasharray =“x y” 的数值是 相对于strokethickness的倍数,而非实际像素数。
//x为虚线的线段长度,y为线段之间的间隔。
polyline折线:
<polyline points="0,0 500,200 300,500 400,700"
多边形polygon:
path路径:
<path data="M0,0 L200,100 H300,100 Z"
M移动 起始点 L直线 H水平线 V垂直线 Z结束
f12:
切换到代码界面。
第一行为控件的命名空间;
第二行为属性的命名空间; //x:name 意思是第二行的属性,由于第二行是属性的集合。
关于messagedialog方法的一些注意:
须要命名空间:using Windows.UI.Popups;
MessageDialog类有如下经常使用方法和属性:
ShowAsync():异步弹出消息框.
Commands:添加命令,在弹出框界面上同步添加相应的按钮.
DefaultCommandIndex:设置默认按钮的索引,按ENTER键将激活该索引对应的命令按钮
CancelCommandIndex:设置取消退出按钮的索引,按ESC键将激活该索引对应的命令按钮
Title:弹出消息框的标题
async:用于方法申明时,此关键字是告诉编译器在这个方法体内可能会有await关键字。
await:用于异步操做时的模拟同步等待,声明有此关键字的异步操做需等待异步操做完成以后才继续往下运行,可是不会阻塞UI线
程。
注意:使用await关键字的方法体,必须使用async声明方法
wp8.1的软件状态:
即:
-》running 运行
-》notrunning 中止
-》suspended 挂起
另外:
activated 即加载状态完成 //此为事件
activating 即正在加载状态 此时能够加载图片
suspending 正在挂起 //此为事件
resuming //此为事件
保存数据:
为确保数据安全,在挂起时保存数据。
数据保存的三种方法:
第一种方法:
注册存储:
注:在写的过程当中会生成命名空间。
挂起数据存储:
把以前挂起的数据重加载:
第二种方法:
注册存储:
注:在写的过程当中会生成命名空间。
挂起数据存储:
把以前挂起的数据重加载:
在基础页代码行找到loadstate和savestate事件
添加e的pagestate。注意:这里保存的控件数据只能是本基础页的。
加载数据,要先作判断。
实际就是第一种基础上进行。
第三种方法(主流):
为改变事件添加代码,注意ApplicationData须要添加命名空间。
在loaadstate中加载:
最好作null判断
关于localsettings :
关于try与catch:
try
{
}
catch(exception ex) //把异常抛出
{
}
数据绑定:
术语:
绑定对象
绑定源
路径
扩展语法形如:
数据绑定类型:
mode=类型名
onetime:绑定一次
oneway:单向绑定
twoway:双向绑定
类型设置语法:
{binding path=。。。 mode=类型名}
注意:为了让前台i及时更新数据,须要使数据源类继承自接口INotifyPropertyChanged 该接口须要添加命名空间:using System.ComponentModel;
注:没有该接口,只能前台---》后台。
并实现该接口,以下:
i
并编写方法:
后面详见下列代码:
该段代码:
string birthdate;
public string number
{
get{return birthdate;}
set
{ birthdate = value;
func(number);
}
} public event PropertyChangedEventHandler PropertyChanged; //该事件经过右击上面的借口得到。 public void func( string bingdingname) { if(PropertyChanged != null) { PropertyChanged(this,new PropertyChangedEventArgs(bingdingname)); } }
绑定列表集合:
控件设计:
绑定后台集合:
网络数据请求:
生命周期按钮:
视图--》工具栏--》调试位置
后台数据更改集合:
observablecollection
注:须要添加新的命名空间。
绑定数据源(集合):
itemssource=。。。。
静态资源:
mvvm框架:
获取动态添加的控件的属性:
1,能够添加控件名。经过控件名操做;
2,数据集中能够经过索引。
应用数据与公共文件
应用数据
注:
应用数据不能跨应用访问,不能可见访问。
通常存储字符串等简单类型。
applicationdata.current.localsettings:
详见:四级快速算分器
数据的手动删除:
判断键值是否存在:
删除语法:
容器.remove(键值);
公用文件
建立公共文件:
//获取公共文件夹
knowfolder.公共文件夹类型(图片,视频,音乐) //需导入命名空间,而且在设置中勾选该类型库。
想要保存惟一名,即若是有重复即添加数字以区分。以下:
具体代码:
StorageFolder folder = KnownFolders.MusicLibrary;
StorageFile file = await folder.CreateFileAsync(txt_filename.Text.ToString() + ".txt",CreationCollisionOption.GenerateUniqueName);
await FileIO.WriteTextAsync(file,txt_filecontent.Text);
await new MessageDialog("","建立成功!!!").ShowAsync();
动态磁贴及通知;
toast(通知):
参考(微软官网):
建立步骤:
注:
1,建立前要在设置中容许显示通知。
2,加载模板(共8种,官网详细): 以第一种(toastText01)为例:
注:须要添加命名空间。
须要添加;
using Windows.UI.Notifications;
3,把加载的模板传值给定义变量:
注:须要添加命名空间。
须要添加;
using Windows.Data.Xml.Dom;
4,加载数据:
5,总的过程:
模板(单种文本):
private void toastappear_Click(object sender, RoutedEventArgs e)
{
XmlDocument xml = ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01);
XmlNodeList nodelist = xml.GetElementsByTagName("text");
nodelist[0].AppendChild(xml.CreateTextNode("来自鲁新的问候"));
ToastNotification tn = new ToastNotification(xml);
ToastNotificationManager.CreateToastNotifier().Show(tn);
}
以第二种为例:(标题加内容)(应用较为广泛):
自定义模板(使用xml代码):
注:红色代码区域模板来自于微软文档(第一种模板为例),注意要四个双引号。
效果以下:
注:
wp只能显示文本,win8能够显示图片。
磁贴设计
建立辅助磁贴:
1,首先建立应用磁贴id(类中):
2,建立此贴构造函数:
注:
1,须要添加命名空间。
2,构造函数中的图片要求150*150
3,最后一个参数是指显示的磁贴的大小
3,(选作)设置其余尺寸磁贴:
4,设置显示文本(第二步的第二个参数):
5,显示磁贴:
注:
别忘了添加async关键字。
判断磁贴是否存在并做相应操做:
在mainpage中的:
方法中添加判断。
在按钮的点击事件中对两种状况进行处理:
删除:
建立部分上面已给出:
进行磁贴更新:
注:
磁贴更新的模板也在官网,须要时查询。
下面 以更新150150磁贴(文本)为例:
该模板有一行大标题,三行文本。
300150 有5行文本。
1,
注:须要添加两个命名空间。
2,
注:建立tn与toast相似,设置更新时间,10s。信息显示10s后消失。
3,显示消息:
注:
关于磁贴翻转的使用,能够到官网上参考。
注意:
关于安装文件内的媒体数据:
访问格式:
多媒体开发
例;player.play();
注:
路径既能够是本地文件也能够是网络文件。
路径一旦赋值,文件当即播放。除非设置autoplay属性为flase。
注:
currentstateechanged 事件指的是播放器状态发生改变时触发,配合currentstate属性。
开启媒体播放进度条:
样式:
一个uri方案:
例:访问本地文件:
传输控件(响应硬件系统设置):
c#代码中的一些问题(参数 sender 与 e):
上面事件中的指的是该事件的主体控件(利用这个能够为控件命名)
指的是 传入的值。
地图服务
申请令牌:
mapcontrol控件:
地图控件铺满全屏:
方法1,去掉控件所有属性
方法2,控件上右击,布局--》所有重置
使用地图令牌:
1,找到
并查看代码
2,找到phoneidentity,把
phoneproductId改成地图令牌标识,即
3,在设置中勾选位置选项。
4,在xaml代码界面中地图控件添加属性,并把
复制到代码中。
在地图中显现当前位置:
代码:
注:
geolocator.coordinate.latitude为纬度,
geolocator.coordinate.longitude为经度
缩放属性zoomlevel(1--20):
能够经过滑动控件控制缩放值:
地址与经纬度之间的转化:
微软方式:
触摸 手势操做
参考资料:
指针:
关于滑动操做:
例子:判断方向:
复杂触摸的处理(点按,双按,长按)
righttapped(右击):指的是长按弹起触发
多点触控与复琐事件:
注:
使用此系列事件须要启用:
以下:
封装方法:
选中内容,右击,提取方法。
关于DeBug:
注:需导入命名空间
处理后退键:
publicMainPage(){this.InitializeComponent();#if WINDOWS_PHONE_APPWindows.Phone.UI.Input.HardwareButtons.BackPressed+=HardwareButtons_BackPressed;#endifthis.NavigationCacheMode=Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;}#if WINDOWS_PHONE_APPvoidHardwareButtons_BackPressed(object sender,Windows.Phone.UI.Input.BackPressedEventArgs e){if(Frame.CanGoBack){
e.Handled=true;Frame.GoBack();}}#endif
连接跳转:
Windows Phone 8.1 中可使用这个连接跳转到应用评论页面:
await Windows.System.Launcher.LaunchUriAsync(
newUri("ms-windows-store:reviewapp?appid="+CurrentApp.AppId));
注:需添加命名空间
开发笔记:如何在应用内跳转到微软商店中查看开发者名下所有应用列表
咱们能够很容易地使用微软的文件和URI协议的Windows Phone8,直接启动Windows应用程序商店,以显示在您的出版商名称的应用程序列表。一个小例子已经以下。
//function to display the application list
public async void launch()
{
//以"深圳九幽网络科技有限公司"为例:
await Windows.System.Launcher.LaunchUriAsync(new Uri("zune:search?publisher=深圳九幽网络科技有限公司"));
}
调用上述功能后,您将获得进入发行商名下APP列表,记得修改连接中的“publisher=”为您的发行商名称哦!
跳转到 应用下载页面:
//注:在帐户中找到应用连接使用连接便可。
await Launcher.LaunchUriAsync(new Uri("zune:navigate?appid=dcdd7004-064a-4c04-ad22-eae725f8ffb1")); }
检测双击的方法:
如下是双击检测的方法:
longLastExitAttemptTick=DateTime.Ticks;privatevoidBackButtonPressHandler(...){long thisTick =DateTime.Ticks;if(LastExitAttemptTick- thisTick <[specified amount]){//退出代码}elseLastExitAttemptTick=DateTime.Ticks;}
邮件反馈:
wp8.1 app调用outlok邮箱反馈,wp8.1app调用outlok
开发wp8.1 app 添加邮箱反馈功能,using Windows.ApplicationModel.Email; 方法以下
privateasyncvoid SendEmailTask()
{
var emailMessage = new EmailMessage();
emailMessage.Subject = "subject";
emailMessage.Body = "body";
emailMessage.To.Add(new EmailRecipient("emailAddress"));
await EmailManager.ShowComposeNewEmailAsync(emailMessage);
}
注:配合 TextBlock中的
网络编程
http协议:
httpwebrequest:
get请求:
sqlite操做
wp8.1
注意:
修改数据应直接对数据库进行操做,而非数据列表。
修改数据库数据:
SQLiteAsyncConnection conn = connData();
ObservableCollection
//for (int i = 0; i < list.Count; i++)
//{
// if (list[i].ID == 2)
// {
// list[i].Name = "小梦我爱你,再一次";
// }
//}
var query = conn.Table
var result = await query.ToListAsync();
foreach (var item in result)
{
item.Name = "小梦我爱你";
await conn.UpdateAsync(item);
}
//ObservableCollection
lv_appear.ItemsSource = list;
闪光灯:
如何在 Windows Phone 8 的应用中使用相机闪光灯
2014/6/18
适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1
从 Windows Phone OS 7.1 开始,您可使用 Microsoft.Devices.PhotoCamera 类以编程方式访问手机的相机。本主题介绍如何采用编程方式设置相机闪光灯模式。本主题是如何为 Windows Phone 8 建立基本相机应用的继续,而且假定您已在该主题中建立了基本相机项目。
提示:
从 Windows Phone 8 开始,应用能够将 PhotoCaptureDevice 类用于高级捕获方案。PhotoCaptureDevice 容许应用控制照片属性,例如 ISO、曝光补偿和手动对焦位置(在手机上可用时)。本主题没有演示PhotoCaptureDevice;有关使用此类的更多信息,请参见 Windows Phone 8 的高级照片拍摄。
本主题与基本相机示例相对应。
Windows Phone 支持 FlashMode 枚举中的下列闪光灯模式。
闪光灯模式
描述
Off
相机闪光灯已禁用。
On
相机闪光灯已启用。
RedEyeReduction
红眼消除已启用。
自动
相机闪光灯在自动模式下使用。
重要说明:
并不是全部设备都支持全部闪光灯模式;重要的是在使用以前,调用 IsFlashModeSupported(FlashMode) 方法来确承认用的模式。
实现相机闪光灯
本节提供在您的应用中实现闪光灯模式配置所需的代码。
实现相机闪光灯的步骤
打开在如何为 Windows Phone 8 建立基本相机应用中建立的基本相机项目。
在主页 XAML 文件 MainPage.xaml 的 StackPanel 元素中添加如下代码,放在名为 ShutterButton 的 Button 元素下面。该代码为相机闪光灯的按钮。
XAML
<ButtonName="FlashButton"Content="Fl:TBD"Click="changeFlash_Clicked"FontSize="26"FontWeight="ExtraBold"Height="75"/>
打开主页的代码隐藏文件 MainPage.xaml.cs,在 MainPage 类构造函数上面添加如下变量声明:
C#
VB
// Holds current flash mode.privatestring currentFlashMode;
在 MainPage.xaml.cs 中,向 OnNavigatedTo 方法中添加如下代码,放在 Disable UI 注释下面。
C#
VB
FlashButton.IsEnabled = false;
该代码禁用闪光灯按钮。当设备上的相机不可用时使用。
在 MainPage.xaml.cs 中,向 cam_Initialized 方法中添加如下代码,放在 txtDebug 语句下面。
C#
VB
// Set flash button text.
FlashButton.Content = "Fl:" + cam.FlashMode.ToString();
该代码显示 FlashButton 按钮上的当前闪光灯模式。
在 MainPage.xaml.cs 中,向 MainPage 类添加如下代码。该代码经过每次按按钮时切换到另外一种闪光灯模式来实现 changeFlash_Clicked 的事件处理程序。
C#
VB
// Activate a flash mode.// Cycle through flash mode options when the flash button is pressed.privatevoid changeFlash_Clicked(object sender, RoutedEventArgs e)
{
switch (cam.FlashMode) { case FlashMode.Off: if (cam.IsFlashModeSupported(FlashMode.On)) { // Specify that flash should be used. cam.FlashMode = FlashMode.On; FlashButton.Content = "Fl:On"; currentFlashMode = "Flash mode: On"; } break; case FlashMode.On: if (cam.IsFlashModeSupported(FlashMode.RedEyeReduction)) { // Specify that the red-eye reduction flash should be used. cam.FlashMode = FlashMode.RedEyeReduction; FlashButton.Content = "Fl:RER"; currentFlashMode = "Flash mode: RedEyeReduction"; } elseif (cam.IsFlashModeSupported(FlashMode.Auto)) { // If red-eye reduction is not supported, specify automatic mode. cam.FlashMode = FlashMode.Auto; FlashButton.Content = "Fl:Auto"; currentFlashMode = "Flash mode: Auto"; } else { // If automatic is not supported, specify that no flash should be used. cam.FlashMode = FlashMode.Off; FlashButton.Content = "Fl:Off"; currentFlashMode = "Flash mode: Off"; } break; case FlashMode.RedEyeReduction: if (cam.IsFlashModeSupported(FlashMode.Auto)) { // Specify that the flash should be used in the automatic mode. cam.FlashMode = FlashMode.Auto; FlashButton.Content = "Fl:Auto"; currentFlashMode = "Flash mode: Auto"; } else { // If automatic is not supported, specify that no flash should be used. cam.FlashMode = FlashMode.Off; FlashButton.Content = "Fl:Off"; currentFlashMode = "Flash mode: Off"; } break; case FlashMode.Auto: if (cam.IsFlashModeSupported(FlashMode.Off)) { // Specify that no flash should be used. cam.FlashMode = FlashMode.Off; FlashButton.Content = "Fl:Off"; currentFlashMode = "Flash mode: Off"; } break; } // Display current flash mode.this.Dispatcher.BeginInvoke(delegate() { txtDebug.Text = currentFlashMode; }); }
在设备上,经过选择“调试 | 启动调试”菜单命令来运行应用。