我的第一个wp8小程序
一:截图,功能介绍:点击音乐红色按钮,播放铃声

二:代码
XAML代码
<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"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True"> <!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!--TitlePanel contains the name of the application and page title-->
<StackPanel x:Name="TitlePanel" Grid.Row="" Margin="12,17,0,28">
<TextBlock Text="红马車" Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>
<TextBlock Text="hongmaju" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel> <!--ContentPanel - place additional content here-->
<Grid x:Name="CttpnMap" Grid.Row="" Margin="12,0,12,0">
<Button Name="PlayVoiceBtn"
Height=""
Width=""
HorizontalAlignment="Left"
VerticalAlignment="Center"
Margin="0,-400,0,0"
Click="PlayVoiceBtn_Click_1">
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset=""></GradientStop>
<GradientStop Color="Red" Offset=""></GradientStop>
</LinearGradientBrush>
</Button.Background>
音乐</Button>
<MediaElement x:Name="CuMediaElement"
Source="/Assets/Voices/Alarm01.wav"
Volume=""
AutoPlay="False"
></MediaElement>
</Grid>
</Grid> </phone:PhoneApplicationPage>
后台代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using PhoneApp1.Resources;
using System.Windows.Media; namespace PhoneApp1
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent(); Button myButton = new Button();
myButton.Name="myBtn";
myButton.Width = ;
myButton.Height = ;
myButton.Background = new SolidColorBrush(Colors.Red);
myButton.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
myButton.VerticalAlignment = System.Windows.VerticalAlignment.Top;
myButton.Content = "音乐二";
CttpnMap.Children.Add(myButton);//将控件加入到grid中
myButton.Margin = new Thickness(, , , );
}
//单击事件
private void PlayVoiceBtn_Click_1(object sender, RoutedEventArgs e)
{
CuMediaElement.Play();
} }
}
三:注意事项
如果不能实现单机播放铃声,可以查看铃声的路径是否正确,路径不使用反斜杠“\”
XAML代码,btn的代码和media元素代码必须放在同一级的同一个grid中,不能将一个和另一个所在的grid并列放到同一级的grid中
四:相关知识点
命名空间和Code-Behind类
在上文代码中设置了两个XAML命名空间(NameSpace),它们是Visual Studio 2008自动生成的,具体如下所示:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 设置命名空间的主要目的是帮助XAML解析器了解类所在的位置,其能够减少冲突的可能性。设置命名空间通过xmlns属性来实现,该属性值通常必须是URI(统一资源标志符),例如上面所设置的值。在每个XAML文档中都应该声明类似这样的命名空间。
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 是WPF的核心命名空间,其涵盖所有WPF类,包括构建用户界面使用的控件。在本例中,该命名空间没有使用前缀,所以它是整个文档的默认命名空间。换言之,在没有特殊情况下,每个元素都自动归置于该命名空间之下。
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 是XAML的命名空间,其包括影响文档解释的各种XAML特性。该命名空间映射为前缀x。这意味着,通过在任何元素名称之前放置这个前缀,都可使用该前缀,例如<x:ElementName>。
在了解命名空间之后,读者一定还看到在其之上有一行:
<Window x:Class="HelloWpf.Window1" 这行代码表示的并不是命名空间,而是设置所引用的Code-Behind类。HelloWpf.Window1类中包括有关按钮单击的事件处理程序。
如前文所述,开发人员使用XAML可构建用户界面,同时为了实现业务逻辑还需要撰写程序逻辑代码,例如事件处理程序等。这些程序逻辑代码包含在Code- Behind类文件中。显而易见,必须在XAML与Code-Behind类文件之间建立一定的引用关系,其使用的就是上面那行代码。
注意:在使用<Window>元素时必须设置x:Class。
我的第一个wp8小程序的更多相关文章
- 手把手教你写一个RN小程序!
时间过得真快,眨眼已经快3年了! 1.我的第一个App 还记得我14年初写的第一个iOS小程序,当时是给别人写的一个单机的相册,也是我开发的第一个完整的app,虽然功能挺少,但是耐不住心中的激动啊,现 ...
- 如何快速地开发一个微信小程序
如何快速地开发一个微信小程序呢?我觉得作为初学者,最好能有一个模板,然后改这个模板. 同样作为初学者,刚开始的时候我有下面的几个问题,后来通过问同学,我弄清楚了. 微信小程序可以连接MySQL或者Sq ...
- 第一个mpvue小程序开发总结
前言 说起小程序,其实在去年我都还只试着照着官方文档写过demo的,不过现在这家公司小程序做得比较多,我来之后也参与了几个小程序的开发了,最开始那几个是用的wepy,最近一个开始转用mpvue开发,最 ...
- 搭建Spring开发环境并编写第一个Spring小程序
搭建Spring开发环境并编写第一个Spring小程序 2015-05-27 0个评论 来源:茕夜 收藏 我要投稿 一.前面,我写了一篇Spring框架的基础知识文章,里面没 ...
- Day1:第一个python小程序
Day1:第一个python小程序与开发工具Pycharm 一.Hello World C:\Users\wenxh>python Python 3.6.2 (v3.6.2:5fd33b5, J ...
- 第一个servlet小程序
第一个servlet小程序 com.fry.servlet.HelloServlet package com.fry.servlet; import javax.servlet.ServletExce ...
- 一个支付宝小程序在一段时间内只能保留一个 WebSocket 连接
一个支付宝小程序在一段时间内只能保留一个 WebSocket 连接 my.connectSocket - 支付宝开放平台 https://opendocs.alipay.com/mini/api/vx ...
- 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app
微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...
- 【AngularJS】—— 3 我的第一个AngularJS小程序
通过前面两篇的学习,基本上对AngularJS的使用有了一定的了解. 本篇将会自己手动写一个小程序,巩固下理解. 首先要注意的是,引用AngularJS的资源文件angular.min.js文件. 由 ...
随机推荐
- Axure RP 8.0正式版下载地址 安装和汉化说明
1.Axure RP和中文包包下载地址 官网地址:http://www.axure.com.cn/3510/ 2.下载完成后安装 3.破解 axure8.0注册码激活码:(亲测可用)用户名:aaa注册 ...
- An App ID with Identifier 'xxxxxx’ is not available. Please ....
1.完全关闭Xcode; 2.找到钥匙串,将钥匙串(Keychain)中的对应证书移除: 3.再次打开Xcode,通过 Preferences - Account 4. 删除原先的账号重新登录, 搞定 ...
- C# 泛型2
我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类 ...
- Elasticsearch学习2--Elasticsearch数据类型简介
1.Elasticsearch 是 面向文档型数据库,这意味着它存储的是整个对象或者 文档,它不但会存储它们,还会为他们建立索引,这样你就可以搜索他们了.你可以在 Elasticsearch 中索引. ...
- 内容替换Filter
有时候需要对网站进行控制,防止输出非法内容或者敏感信息.这时我们可以使用filter来进行内容替换,其工作原理为,在Servlet将内容输出到response时,response将内容缓存起来,在Fi ...
- HTML meta标签总结与属性使用介绍
之前学习前端中,对meta标签的了解仅仅只是这一句. <meta charset="UTF-8"> 但是打开任意的网站,其head标签内都有一列的meta标签.比如我博 ...
- this point
// this.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using namespa ...
- BeanUtils的日期问题
//注册日期类型转换器 //第一种 自定义方法 ConvertUtils.register(new Converter(){ //第一个参数是目标 ...
- WPF自定义DataGrid分页控件
新建Custom Control,名:PagingDataGrid 打开工程下面的Themes\Generic.xaml xaml里面代码替换如下 <Style x:Key="{x:T ...
- 小心DriveInfo类IsReady属性的较大延迟问题
当某些驱动器调用IsReady属性来判断是否准备好时,会有性能问题,会非常慢,特别是网络驱动器断开的时候,这个属性会有30秒左右的延迟,这对程序执行是非常大的开销,请慎重调用