silverlight中如何方便在多个"场景"即Xaml文件之间随意切换?

注:以下方法是百度上搜索得来的,整理一下转发于此

步骤1.先在silverlight项目中新建一个接口文件IContent.cs,内容如下(namespace请各位根据自己的实际情况修改):

Code
using System.Windows;
namespace BookStore
{
public interface IContent
    {
        UIElement Content { get; set; }
    }
}

步骤2.建二个Xaml文件Test.xaml和Test2.Xaml

Test.Xaml完整内容如下:

Code

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Width="600" Height="400">



                这是Test.Xaml文件




Test.Xaml.Cs完整内容如下:

Code
using System.Windows;
using System.Windows.Controls;
namespace BookStore
{
//手动增加, IContent ,让Test实现IContent接口
public partial class Test : UserControl, IContent 
    {
public Test()
        {
            InitializeComponent();
        }
private void Button_Click(object sender, RoutedEventArgs e)
        {
//实现切换(点击test.xaml上的按钮将切换到Test2"场景")
            (Application.Current.RootVisual as IContent).Content = new Test2();                       
        }
///


/// 增加一个Content属性
///

public new UIElement Content
        {
get
            {
return base.Content;
            }
set
            {
base.Content = value;
            }
        } 
    }
}

Test2.Xaml完整内容如下:

Code

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Width="600" Height="400">



                这是Test2.Xaml文件




Test2.Xaml.cs完整内容如下:(其实跟Test.Xaml.cs几乎一样)

Code
using System.Windows;
using System.Windows.Controls;
namespace BookStore
{
//手动增加, IContent ,让Test2实现IContent接口
public partial class Test2 : UserControl, IContent
    {
public Test2()
        {
            InitializeComponent();
        }
private void Button_Click(object sender, RoutedEventArgs e)
        {
//就这一行有点一不样(点击test2.xaml上的按钮将还回到Test"场景")
            (Application.Current.RootVisual as IContent).Content = new Test();            
        }
///


/// 增加一个Content属性
///

public new UIElement Content
        {
get
            {
return base.Content;
            }
set
            {
base.Content = value;
            }
        } 
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值