回到MainPage了, 开始想那个点击 PlayGame 按钮 ,跳转到另外一个页面。咋办?
哈,网上大牛确实多,翻开博客园,找到 ‘路过秋天’有个比较良好的解决方案。
1、首先,点击APP.xaml的后台.cs 查看。
要创建个全局容器,来进行页面转换。以下是APP.cs的源码,有注释的部份,都是要修改或者增加的,自己看着办吧···哈
using System;using System.Collections.Generic;using System.linq;using System.Net;using System.windows;using System.windows.Controls;using System.windows.documents;using System.windows.input;using System.windows.Media;using System.windows.Media.Animation;using System.windows.Shapes;namespace SilverlightmusicHit{ public partial class App : Application { /// <summary> /// 全局变量 /// </summary> GrID root = new GrID(); public App() { this.Startup += this.Application_Startup; this.Exit += this.Application_Exit; this.UnhandledException += this.Application_UnhandledException; InitializeComponent(); } /// <summary> /// 自定义转向 /// </summary> /// <param name="ct"></param> public voID RedirectTo(Control ct) { root.Children.Clear(); root.Children.Add(ct); } private voID Application_Startup(object sender,StartupEventArgs e) { //this.RootVisual = new MainPage(); this.RootVisual = root; root.Children.Add(new MainPage()); } private voID Application_Exit(object sender,EventArgs e) { } private voID Application_UnhandledException(object sender,ApplicationUnhandledExceptionEventArgs e) { // 如果应用程序是在调试器外运行的,则使用浏览器的 // 异常机制报告该异常。在 IE 上,将在状态栏中用一个 // 黄色警报图标来显示该异常,而 firefox 则会显示一个脚本错误。 if (!System.Diagnostics.DeBUGger.IsAttached) { // 注意: 这使应用程序可以在已引发异常但尚未处理该异常的情况下 // 继续运行。 // 对于生产应用程序,此错误处理应替换为向网站报告错误 // 并停止应用程序。 e.Handled = true; Deployment.Current.dispatcher.BeginInvoke(delegate { ReportErrorTodoM(e); }); } } private voID ReportErrorTodoM(ApplicationUnhandledExceptionEventArgs e) { //try //{ // string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace; // errorMsg = errorMsg.Replace('"','\'').Replace("\r\n",@"\n"); // System.windows.browser.HTMLPage.Window.Eval("throw new Error(\"Unhandled Error in Silverlight Application " + errorMsg + "\");"); //} //catch (Exception) //{ //} try { string errorMsg = e.ExceptionObject.Message + e.ExceptionObject.StackTrace; errorMsg = errorMsg.Replace('"',@"\n"); System.windows.browser.HTMLPage.Window.Alert("Error: " + errorMsg); } catch (Exception) { } } }}
好了,再回到MainPage
2、双击PlayGame按钮触发Click事件,打算跳转代码
private voID btnStart_Click(object sender,RoutedEventArgs e) { ((App)(Application.Current)).RedirectTo(new Music()); }
再次检查一下MainPage.xaml
<UserControl x:Class="SilverlightmusicHit.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/Expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="600" d:DesignWIDth="800"> <UserControl.Resources> <Style x:Key="buttonStyle1" targettype="button"> <Setter Property="Template"> <Setter.Value> <ControlTemplate targettype="button"> <GrID> <visualstatemanager.VisualStateGroups> <VisualStateGroup x:name="CommonStates"> <VisualState x:name="normal"> <Storyboard> <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.Targetname="contentPresenter"> <EasingDoubleKeyFrame KeyTime="0" Value="1"/> <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0.75"/> <EasingDoubleKeyFrame KeyTime="0:0:1" Value="0.5"/> <EasingDoubleKeyFrame KeyTime="0:0:1.5" Value="0.25"/> <EasingDoubleKeyFrame KeyTime="0:0:2" Value="0"/> <EasingDoubleKeyFrame KeyTime="0:0:2.5" Value="0.25"/> <EasingDoubleKeyFrame KeyTime="0:0:3" Value="0.5"/> <EasingDoubleKeyFrame KeyTime="0:0:3.5" Value="0.75"/> <EasingDoubleKeyFrame KeyTime="0:0:4" Value="1"/> </DoubleAnimationUsingKeyFrames> </Storyboard> </VisualState> <VisualState x:name="MouSEOver"/> <VisualState x:name="pressed"/> <VisualState x:name="Disabled"/> </VisualStateGroup> </visualstatemanager.VisualStateGroups> <ContentPresenter x:name="contentPresenter" OpacityMask="Black"/> </GrID> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="FontFamily" Value="Arial Black"/> <Setter Property="FontSize" Value="48"/> <Setter Property="Foreground"> <Setter.Value> <linearGradIEntBrush EndPoint="0.5,1" StartPoint="0.5,0"> <GradIEntStop color="Black" Offset="0"/> <GradIEntStop color="White" Offset="1"/> <GradIEntStop color="#FF1D1D1D" Offset="0.116"/> <GradIEntStop color="#FF303030" Offset="0.191"/> </linearGradIEntBrush> </Setter.Value> </Setter> </Style> </UserControl.Resources> <GrID x:name="LayoutRoot"> <GrID.ColumnDeFinitions> <ColumnDeFinition WIDth="300"/> <ColumnDeFinition WIDth="auto" /> <ColumnDeFinition WIDth="35*" /> </GrID.ColumnDeFinitions> <GrID.Background> <linearGradIEntBrush EndPoint="0.803,1.006" StartPoint="0.8,-0.006"> <GradIEntStop color="Black" Offset="0.584"/> <GradIEntStop color="White" Offset="1"/> </linearGradIEntBrush> </GrID.Background> <button Content="Hill@Home" GrID.Column="1" margin="-137,153" RendertransformOrigin="0.5,0.5" Style="{StaticResource buttonStyle1}" Height="72" VerticalAlignment="Bottom" HorizontalAlignment="left" WIDth="278"/> <button GrID.Column="1" margin="-137,121" RendertransformOrigin="0.5,0.5" Style="{StaticResource buttonStyle1}" Height="72" VerticalAlignment="Bottom" HorizontalAlignment="left" WIDth="278" Content="Hill@Home" Opacity="0.1"> <button.Rendertransform> <transformGroup> <Scaletransform ScaleY="-1"/> <Translatetransform Y="10"></Translatetransform> </transformGroup> </button.Rendertransform> </button> <button name="btnStart" Content="Play Game" GrID.Column="1" Height="69" HorizontalAlignment="left" margin="209,378,0" VerticalAlignment="top" WIDth="256" FontFamily="Comic Sans MS" FontSize="26" Background="#FFE2C200" Foreground="#FF570000" Click="btnStart_Click" Opacity="0.5"></button> <Canvas name="Hit" margin="267,226,64,239" WIDth="135" Height="135" GrID.Column="1"></Canvas> <TextBlock name="txtBlog" Text="http://blog.csdn.net/cheng110110" Height="20" VerticalAlignment="Bottom" HorizontalAlignment="left" WIDth="300" /> </GrID></UserControl>
按F5,不行?呵呵···还有。
3、创建一个用户控件,命名Music。
大功告成了,,这篇是短了点。
不过那跳转方案可以慢慢琢磨一阵子的·····o(∩_∩)o 、
下次再见~~~
name:5+x
参考文章与书籍
http://www.cnblogs.com/cyq1162/ 博客园:路过秋天
WPF葵花宝典
总结以上是内存溢出为你收集整理的silverlight 乐动魔方 实战四全部内容,希望文章能够帮你解决silverlight 乐动魔方 实战四所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)