建成项目之后有个page页面,在这个页面中放一个按钮,点击之后想跳转到新建的一个Main.xaml页面去,怎么做?
在线等...
29 个解决方案
#1
用链接按钮试试,它有个属性是指向其他页面地址
#2
链接按钮?哪儿有?
#3
他说的是Hyperlinkerbutton, 但是这是用来连接到URL上的。
我想你要的是多个WINDOW中的切换。
可以操作root.child 。
root是Main Window中的根元素,可能是Grid or Canvas .
动态修改即可。
我想你要的是多个WINDOW中的切换。
可以操作root.child 。
root是Main Window中的根元素,可能是Grid or Canvas .
动态修改即可。
#4
this.content = new Page2()
不行吗?
不行吗?
#5
导航啊!
新建一个Silverlight navigation application项目,运行一下,然后看看代码就知道了。
新建一个Silverlight navigation application项目,运行一下,然后看看代码就知道了。
#6
来学习学些了。。。看看了。。
#7
现在推荐使用Navigation功能。
#8
你是想跳到xaml还是想把那个xaml的场景调过来呢?
#9
啥时候的问题啊?估计不会结贴了。
#10
使用Navigate吧, 这样很方便的。
#11
<Navigate:frame/> 然后用<Hyperlinkerbutton target="" source="gsdg.xaml">就可以了。
#12
哈哈 还可以这样 我试试去 谢谢楼上的朋友了
#13
推荐你看一下:
第一个:使用UserControl进行传值、页面导航
http://www.bbniu.com/forum/thread-389-1-1.html
第二个:使用Navigation系统中的Frame+Page进行传值、页面导航
http://www.bbniu.com/forum/thread-395-1-1.html
http://www.bbniu.com/forum/thread-406-1-1.html
第一个:使用UserControl进行传值、页面导航
http://www.bbniu.com/forum/thread-389-1-1.html
第二个:使用Navigation系统中的Frame+Page进行传值、页面导航
http://www.bbniu.com/forum/thread-395-1-1.html
http://www.bbniu.com/forum/thread-406-1-1.html
#14
在 frame 里面的窗体A ,如何通过窗体A里的按钮来 跳转到 另一窗体????????
#15
我说的这个跳转前提条件是:两个*.xaml必须继承自UserControl类,比如要从Page1.xaml跳转到Page2.xaml中
如下:先在App.xaml的类中声明Grid rootGrid = new Grid();
再把这个Application_Startup方法改为
private void Application_Startup(object sender,StartupEventArgs e)
{
this.RootVisual = rootGrid;
rootGrid.Children.Add(new Page1());
}
再添加一个方法
public void RedirectTo(UserControl userControl)
{
App app = (App)Application.Current;
app.rootGrid.Children.Clear();
app.rootGrid.Children.Add(userControl);
}
在Page1.xaml事件中写
App app = (App)Application.Current;
app.RedirectTo(new Page2(参数可有可无,关键是看Page2.xaml中的构造函数有无参数));
如下:先在App.xaml的类中声明Grid rootGrid = new Grid();
再把这个Application_Startup方法改为
private void Application_Startup(object sender,StartupEventArgs e)
{
this.RootVisual = rootGrid;
rootGrid.Children.Add(new Page1());
}
再添加一个方法
public void RedirectTo(UserControl userControl)
{
App app = (App)Application.Current;
app.rootGrid.Children.Clear();
app.rootGrid.Children.Add(userControl);
}
在Page1.xaml事件中写
App app = (App)Application.Current;
app.RedirectTo(new Page2(参数可有可无,关键是看Page2.xaml中的构造函数有无参数));
#16
我刚才试了一下如果Page1.xaml和Page2.xaml继承的是Page类,只要把App.xaml类中方法RedirectTo(Page page)后面类推。。。
#17
我说的这两种情况都是基于项目建的是“Silverlight应用程序”或“Silverlight导航应用程序”
#18
#19
用自带的Navigation
#20
怎么用啊,不会呢,能不能详细给下例子,就是点击登录按钮,登录成功后自动跳转到操作页面要如何实现呢
#21
跟着做还是出现了问题,NavigationService之后根本就感应不出来,请大家知道的帮忙解释下啦
#22
非常感谢janjinyezi
#23
我也是初学 Silverlight 路过学习了
#24
这个是控件么?
#25
来学习学习
#26
如果你的登陆界面是window窗体的话,子界面应该也用窗体,具体实现方法(假设跳转到Main.xaml):
在Button的Click事件中添加如下代码
Main win = new Main();
Main.Show();
如果你的登陆界面是Page页面的话,子界面应该也用页面才能导航到,具体方法:同样添加到Click事件中:
NavigationService.Navigate(new Uri("pack://application:,,,/Main.xaml"));
我也是反复实践才知道的。
在Button的Click事件中添加如下代码
Main win = new Main();
Main.Show();
如果你的登陆界面是Page页面的话,子界面应该也用页面才能导航到,具体方法:同样添加到Click事件中:
NavigationService.Navigate(new Uri("pack://application:,,,/Main.xaml"));
我也是反复实践才知道的。
#27
.先在silverlight项目中新建一个接口文件IContent.cs,内容如下(namespace请各位根据自己的实际情况修改):
--------------------------------------------------
using System.Windows;
namespace BookStore
{
public interface IContent
{
UIElement Content { get; set; }
}
}
步骤2.建二个Xaml文件Test.xaml和Test2.Xaml
Test.Xaml完整内容如下:
---------------------------------------------------------------------
<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完整内容如下:
--------------------------------------------------------------------
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完整内容如下:
---------------------------------------------------------------------
<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几乎一样)
-------------------------------------------------------------------
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;
namespace BookStore
{
public interface IContent
{
UIElement Content { get; set; }
}
}
步骤2.建二个Xaml文件Test.xaml和Test2.Xaml
Test.Xaml完整内容如下:
---------------------------------------------------------------------
<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完整内容如下:
--------------------------------------------------------------------
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完整内容如下:
---------------------------------------------------------------------
<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几乎一样)
-------------------------------------------------------------------
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;
}
}
}
}
#28
在App.xaml中你可以新增一个方法:
public void RedirectTo(UserControl userControl)
{
App app = (App)Application.Current;
app.rootGrid.Children.Clear();
app.rootGrid.Children.Add(userControl);
}
在跳转按钮的点击事件中:
App app = (App)Application.Current;
app.RedirectTo(new 跳转的页面(参数));
public void RedirectTo(UserControl userControl)
{
App app = (App)Application.Current;
app.rootGrid.Children.Clear();
app.rootGrid.Children.Add(userControl);
}
在跳转按钮的点击事件中:
App app = (App)Application.Current;
app.RedirectTo(new 跳转的页面(参数));
#29
showpage
#1
用链接按钮试试,它有个属性是指向其他页面地址
#2
链接按钮?哪儿有?
#3
他说的是Hyperlinkerbutton, 但是这是用来连接到URL上的。
我想你要的是多个WINDOW中的切换。
可以操作root.child 。
root是Main Window中的根元素,可能是Grid or Canvas .
动态修改即可。
我想你要的是多个WINDOW中的切换。
可以操作root.child 。
root是Main Window中的根元素,可能是Grid or Canvas .
动态修改即可。
#4
this.content = new Page2()
不行吗?
不行吗?
#5
导航啊!
新建一个Silverlight navigation application项目,运行一下,然后看看代码就知道了。
新建一个Silverlight navigation application项目,运行一下,然后看看代码就知道了。
#6
来学习学些了。。。看看了。。
#7
现在推荐使用Navigation功能。
#8
你是想跳到xaml还是想把那个xaml的场景调过来呢?
#9
啥时候的问题啊?估计不会结贴了。
#10
使用Navigate吧, 这样很方便的。
#11
<Navigate:frame/> 然后用<Hyperlinkerbutton target="" source="gsdg.xaml">就可以了。
#12
哈哈 还可以这样 我试试去 谢谢楼上的朋友了
#13
推荐你看一下:
第一个:使用UserControl进行传值、页面导航
http://www.bbniu.com/forum/thread-389-1-1.html
第二个:使用Navigation系统中的Frame+Page进行传值、页面导航
http://www.bbniu.com/forum/thread-395-1-1.html
http://www.bbniu.com/forum/thread-406-1-1.html
第一个:使用UserControl进行传值、页面导航
http://www.bbniu.com/forum/thread-389-1-1.html
第二个:使用Navigation系统中的Frame+Page进行传值、页面导航
http://www.bbniu.com/forum/thread-395-1-1.html
http://www.bbniu.com/forum/thread-406-1-1.html
#14
在 frame 里面的窗体A ,如何通过窗体A里的按钮来 跳转到 另一窗体????????
#15
我说的这个跳转前提条件是:两个*.xaml必须继承自UserControl类,比如要从Page1.xaml跳转到Page2.xaml中
如下:先在App.xaml的类中声明Grid rootGrid = new Grid();
再把这个Application_Startup方法改为
private void Application_Startup(object sender,StartupEventArgs e)
{
this.RootVisual = rootGrid;
rootGrid.Children.Add(new Page1());
}
再添加一个方法
public void RedirectTo(UserControl userControl)
{
App app = (App)Application.Current;
app.rootGrid.Children.Clear();
app.rootGrid.Children.Add(userControl);
}
在Page1.xaml事件中写
App app = (App)Application.Current;
app.RedirectTo(new Page2(参数可有可无,关键是看Page2.xaml中的构造函数有无参数));
如下:先在App.xaml的类中声明Grid rootGrid = new Grid();
再把这个Application_Startup方法改为
private void Application_Startup(object sender,StartupEventArgs e)
{
this.RootVisual = rootGrid;
rootGrid.Children.Add(new Page1());
}
再添加一个方法
public void RedirectTo(UserControl userControl)
{
App app = (App)Application.Current;
app.rootGrid.Children.Clear();
app.rootGrid.Children.Add(userControl);
}
在Page1.xaml事件中写
App app = (App)Application.Current;
app.RedirectTo(new Page2(参数可有可无,关键是看Page2.xaml中的构造函数有无参数));
#16
我刚才试了一下如果Page1.xaml和Page2.xaml继承的是Page类,只要把App.xaml类中方法RedirectTo(Page page)后面类推。。。
#17
我说的这两种情况都是基于项目建的是“Silverlight应用程序”或“Silverlight导航应用程序”
#18
#19
用自带的Navigation
#20
怎么用啊,不会呢,能不能详细给下例子,就是点击登录按钮,登录成功后自动跳转到操作页面要如何实现呢
#21
跟着做还是出现了问题,NavigationService之后根本就感应不出来,请大家知道的帮忙解释下啦
#22
非常感谢janjinyezi
#23
我也是初学 Silverlight 路过学习了
#24
这个是控件么?
#25
来学习学习
#26
如果你的登陆界面是window窗体的话,子界面应该也用窗体,具体实现方法(假设跳转到Main.xaml):
在Button的Click事件中添加如下代码
Main win = new Main();
Main.Show();
如果你的登陆界面是Page页面的话,子界面应该也用页面才能导航到,具体方法:同样添加到Click事件中:
NavigationService.Navigate(new Uri("pack://application:,,,/Main.xaml"));
我也是反复实践才知道的。
在Button的Click事件中添加如下代码
Main win = new Main();
Main.Show();
如果你的登陆界面是Page页面的话,子界面应该也用页面才能导航到,具体方法:同样添加到Click事件中:
NavigationService.Navigate(new Uri("pack://application:,,,/Main.xaml"));
我也是反复实践才知道的。
#27
.先在silverlight项目中新建一个接口文件IContent.cs,内容如下(namespace请各位根据自己的实际情况修改):
--------------------------------------------------
using System.Windows;
namespace BookStore
{
public interface IContent
{
UIElement Content { get; set; }
}
}
步骤2.建二个Xaml文件Test.xaml和Test2.Xaml
Test.Xaml完整内容如下:
---------------------------------------------------------------------
<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完整内容如下:
--------------------------------------------------------------------
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完整内容如下:
---------------------------------------------------------------------
<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几乎一样)
-------------------------------------------------------------------
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;
namespace BookStore
{
public interface IContent
{
UIElement Content { get; set; }
}
}
步骤2.建二个Xaml文件Test.xaml和Test2.Xaml
Test.Xaml完整内容如下:
---------------------------------------------------------------------
<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完整内容如下:
--------------------------------------------------------------------
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完整内容如下:
---------------------------------------------------------------------
<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几乎一样)
-------------------------------------------------------------------
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;
}
}
}
}
#28
在App.xaml中你可以新增一个方法:
public void RedirectTo(UserControl userControl)
{
App app = (App)Application.Current;
app.rootGrid.Children.Clear();
app.rootGrid.Children.Add(userControl);
}
在跳转按钮的点击事件中:
App app = (App)Application.Current;
app.RedirectTo(new 跳转的页面(参数));
public void RedirectTo(UserControl userControl)
{
App app = (App)Application.Current;
app.rootGrid.Children.Clear();
app.rootGrid.Children.Add(userControl);
}
在跳转按钮的点击事件中:
App app = (App)Application.Current;
app.RedirectTo(new 跳转的页面(参数));
#29
showpage