zoukankan      html  css  js  c++  java
  • 我的第一个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="0" 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="1" Margin="12,0,12,0">
                <Button Name="PlayVoiceBtn"
                        Height="200"
                        Width="150" 
                        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="0"></GradientStop>
                            <GradientStop Color="Red" Offset="1"></GradientStop>
                        </LinearGradientBrush>
                    </Button.Background>
                    音乐</Button>
                <MediaElement x:Name="CuMediaElement"
                              Source="/Assets/Voices/Alarm01.wav"
                              Volume="1"
                              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 = 200;
                myButton.Height = 200;
                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(201, 0, 0, 0);
            }
            //单击事件
            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。

  • 相关阅读:
    nginx 服务器重启命令,关闭
    eclipse实现热部署和热启动
    Intellij IDEA 文件修改提示星号
    IntelliJ IDEA 自动编译功能无法使用,On 'update' action:选项里面没有update classes and resources这项
    idea最常使用的快捷键
    centos 切换用户显示bash-4.2$,不显示用户名路径的问题
    汉诺塔
    C语言笔记
    @org.springframework.beans.factory.annotation.Autowired(required=true)
    Error creating bean with name 'xxxx' defined in URL
  • 原文地址:https://www.cnblogs.com/hongmaju/p/3987601.html
Copyright © 2011-2022 走看看