一:截图,功能介绍:点击音乐红色按钮,播放铃声

二:代码

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小程序的更多相关文章

  1. 手把手教你写一个RN小程序!

    时间过得真快,眨眼已经快3年了! 1.我的第一个App 还记得我14年初写的第一个iOS小程序,当时是给别人写的一个单机的相册,也是我开发的第一个完整的app,虽然功能挺少,但是耐不住心中的激动啊,现 ...

  2. 如何快速地开发一个微信小程序

    如何快速地开发一个微信小程序呢?我觉得作为初学者,最好能有一个模板,然后改这个模板. 同样作为初学者,刚开始的时候我有下面的几个问题,后来通过问同学,我弄清楚了. 微信小程序可以连接MySQL或者Sq ...

  3. 第一个mpvue小程序开发总结

    前言 说起小程序,其实在去年我都还只试着照着官方文档写过demo的,不过现在这家公司小程序做得比较多,我来之后也参与了几个小程序的开发了,最开始那几个是用的wepy,最近一个开始转用mpvue开发,最 ...

  4. 搭建Spring开发环境并编写第一个Spring小程序

    搭建Spring开发环境并编写第一个Spring小程序 2015-05-27      0个评论    来源:茕夜   收藏    我要投稿 一.前面,我写了一篇Spring框架的基础知识文章,里面没 ...

  5. Day1:第一个python小程序

    Day1:第一个python小程序与开发工具Pycharm 一.Hello World C:\Users\wenxh>python Python 3.6.2 (v3.6.2:5fd33b5, J ...

  6. 第一个servlet小程序

    第一个servlet小程序 com.fry.servlet.HelloServlet package com.fry.servlet; import javax.servlet.ServletExce ...

  7. 一个支付宝小程序在一段时间内只能保留一个 WebSocket 连接

    一个支付宝小程序在一段时间内只能保留一个 WebSocket 连接 my.connectSocket - 支付宝开放平台 https://opendocs.alipay.com/mini/api/vx ...

  8. 快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

    微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程, ...

  9. 【AngularJS】—— 3 我的第一个AngularJS小程序

    通过前面两篇的学习,基本上对AngularJS的使用有了一定的了解. 本篇将会自己手动写一个小程序,巩固下理解. 首先要注意的是,引用AngularJS的资源文件angular.min.js文件. 由 ...

随机推荐

  1. Openblas编译Android NDK库的步骤

    1.配置Android NDK编译工具.以下下载地址,直接放到浏览器中下载,不需要VPNlinux 32 bithttp://dl.google.com/android/ndk/android-ndk ...

  2. Android开发手记(29) 基于Http的LaTeX数学公式转换器

    本文将讲解如何通过codecogs.com和Google.com提供的API接口来将LaTeX数学函数表达式转化为图片形式.具体思路如下: (1)通过EditText获取用户输入的LaTeX数学表达式 ...

  3. java开发规范总结_命名规范

    规范需要平时编码过程中注意,是一个慢慢养成的好习惯 1.文件 1.属性文件后缀为properties,并且符合java中i18n的规范:   2.对于各产品模块自己的配置文件必须放置在自己模块的con ...

  4. SGU 115.Calendar

    连水3道,还能更水么... #include <stdio.h> using namespace std; ] = {, , , , , , , , , , , , }; int n, m ...

  5. iOS 数据持久性存储-对象归档

    对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化),使用的时候读取该文件的保存路径读取文件的内容(也称为解档,反序列化) 主要涉及两个类:NSKeyedArichiver.NSKey ...

  6. overflow第一次觉得你有点可恶

    今天用css做下拉菜单,因为不需要做手机自适应,再手机里看起来工整一点就行,可是列表中最后一个li的宽度撑开了父div,导致看起来很糟糕,所以给父元素加overflow:hidden:但是下拉列表也被 ...

  7. Javascript中的函数(Function)与对象(Object)的关系

    今天我们来尝试理解Function和Object.因为这个里面有些人前期可能会搞糊涂.他们之间到底是什么关系.当然也不除外当初的我. 注意:官方定义: 在Javascript中,每一个函数实际上都是一 ...

  8. PHP通过链接获取二进制数据的方法

    function urltoblob($url){ $data = @file_get_contents($url); //如果file得不到数据,则给空值 if(!$data){ $data = & ...

  9. MySql数据库3【优化4】连接设置的优化

    1.wait_timeout / interactive_timeout  连接超时 服务器关闭连接之前等待活动的秒数.MySQL所支持的最大连接数是有限的,因为每个连接的建立都会消耗内存,因此我们希 ...

  10. 局部变量存储区域静态变量存储区域static变量存储区域

    局部变量存储区域静态变量存储区域static变量存储区域 常见的存储区域可分为: 1.栈 由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区.里面的变量通常是局部变量.函数参数等. 2.堆 ...