silverlight中如何方便在多个"场景"即Xaml文件之间随意切换?
来源:互联网 发布:破解软件大全下载 编辑:程序博客网 时间:2024/05/19 04:02
注:以下方法是百度上搜索得来的,整理一下转发于此
步骤1.先在silverlight项目中新建一个接口文件IContent.cs,内容如下(namespace请各位根据自己的实际情况修改):
Code
using System.Windows;
namespace BookStore
{
public interface IContent
{
UIElement Content { get; set; }
}
}
using System.Windows;
namespace BookStore
{
public interface IContent
{
UIElement Content { get; set; }
}
}
步骤2.建二个Xaml文件Test.xaml和Test2.Xaml
Test.Xaml完整内容如下:
Code
<UserControl x:Class="BookStore.Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="600" Height="400">
<Grid x:Name="LayoutRoot" Background="White" >
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="50" Background="AliceBlue" Width="200" Height="100">
<TextBlock TextAlignment="Center">
这是Test.Xaml文件
</TextBlock>
<Button Height="25" Width="150" Content="转到Test2.xaml" Click="Button_Click"></Button>
</StackPanel>
</Grid>
</UserControl>
<UserControl x:Class="BookStore.Test"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="600" Height="400">
<Grid x:Name="LayoutRoot" Background="White" >
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="50" Background="AliceBlue" Width="200" Height="100">
<TextBlock TextAlignment="Center">
这是Test.Xaml文件
</TextBlock>
<Button Height="25" Width="150" Content="转到Test2.xaml" Click="Button_Click"></Button>
</StackPanel>
</Grid>
</UserControl>
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();
}
/// <summary>
/// 增加一个Content属性
/// </summary>
public new UIElement Content
{
get
{
return base.Content;
}
set
{
base.Content = value;
}
}
}
}
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();
}
/// <summary>
/// 增加一个Content属性
/// </summary>
public new UIElement Content
{
get
{
return base.Content;
}
set
{
base.Content = value;
}
}
}
}
Test2.Xaml完整内容如下:
Code
<UserControl x:Class="BookStore.Test2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="600" Height="400">
<Grid x:Name="LayoutRoot" Background="White" >
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="50" Background="Beige" Width="200" Height="100">
<TextBlock TextAlignment="Center">
这是Test2.Xaml文件
</TextBlock>
<Button Height="25" Width="150" Content="转到Test.xaml" Click="Button_Click"></Button>
</StackPanel>
</Grid>
</UserControl>
<UserControl x:Class="BookStore.Test2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="600" Height="400">
<Grid x:Name="LayoutRoot" Background="White" >
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" Margin="50" Background="Beige" Width="200" Height="100">
<TextBlock TextAlignment="Center">
这是Test2.Xaml文件
</TextBlock>
<Button Height="25" Width="150" Content="转到Test.xaml" Click="Button_Click"></Button>
</StackPanel>
</Grid>
</UserControl>
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();
}
/// <summary>
/// 增加一个Content属性
/// </summary>
public new UIElement Content
{
get
{
return base.Content;
}
set
{
base.Content = value;
}
}
}
}
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();
}
/// <summary>
/// 增加一个Content属性
/// </summary>
public new UIElement Content
{
get
{
return base.Content;
}
set
{
base.Content = value;
}
}
}
}
运行效果图如下:
欢迎转载,但请注明来自"菩提树下的杨过"
- silverlight中如何方便在多个"场景"即Xaml文件之间随意切换?
- silverlight中如何方便在多个"场景"即Xaml文件之间随意切换?
- silverlight中如何方便在多个"场景"即Xaml文件之间随意切换
- Silverlight中多个Xaml("场景"? or "窗口"? )之间的切换/调用/弹出/传参数问题小结
- Silverlight中多个Xaml("场景"? or "窗口"? )之间的切换/调用/弹出/传参数问题小结
- silverlight内部XAML之间切换的方法
- 如何在Silverlight中切换“页面”
- 如何在Silverlight中切换“页面”
- Silverlight中多个Xaml之间的切换/调用/弹出/传参
- 如何在多个CUDA版本之间自由切换、编译程序
- silverlight在XAML中设置控件焦点
- wpf工程中在Xaml文件下添加多个cs文件
- 如何在Apache中方便地切换http和https?
- vim——打开多个文件、同时显示多个文件、在文件之间切换
- vim——打开多个文件、同时显示多个文件、在文件之间切换
- vim——打开多个文件、同时显示多个文件、在文件之间切换
- vim——打开多个文件、同时显示多个文件、在文件之间切换
- vim——打开多个文件、同时显示多个文件、在文件之间切换
- struts2.0 标签库 及 用法大全
- 如何解决asp.net中使用webbrowser是出现的"无法实例化ActiveX 控件"的异常"
- 一个完成端口类
- 妈妈,我曾经恨过你
- inno setup
- silverlight中如何方便在多个"场景"即Xaml文件之间随意切换?
- vsftpd配置详解(上,中,下)
- Linux 下安装VMTools(RPM 方式)
- 如何连接到另一台机器上的sql server 2005
- bcp的导入导出
- 统计用 sql
- linux RPM包安装命令
- rational rose 2003下载及破解
- 逆向入口切入