1.只有切換頁面
2.加上頁面傳值的功能
第一部份:切換頁面
同樣的先建立一個新的Silverlight專案
分別建立兩個User Control,並且名命為PageSwitcher、Page2
建立完成的結果
接著修改PageSwitcher.xaml.cs
public partial class PageSwitcher : UserControl
{
public PageSwitcher()
{
InitializeComponent();
//將一開始頁面指定為page UI this.Content = new Page();
}
//這裡是處理切換到下一頁的方法
public void Navigate(UserControl nextPage)
this.Content = nextPage;
}
}
然後現在要做第一頁設計頁的部分(Page.xaml)
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<Grid x:Name="LayoutRoot" Background="White">
<StackPanel VerticalAlignment="Center">
<TextBlock FontSize="50" Text="這是第一頁" HorizontalAlignment="Center" />
<Button x:Name="GotoPage2" FontSize="30" Width="300" Content="我想去第二頁"></Button>
</StackPanel>
</Grid>
</UserControl>
而Page.xaml.cs程式碼如下
















然後是第二頁Page2的部份,基本上跟第一頁是一樣的
Page2.xaml
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<Grid x:Name="LayoutRoot" Background="White">
<StackPanel VerticalAlignment="Center">
<TextBlock FontSize="50" Text="這是第二頁" HorizontalAlignment="Center" />
<Button x:Name="GotoPage1" FontSize="30" Width="300" Content="我要回第一頁"></Button>
</StackPanel>
</Grid>
</UserControl>
Page2.xaml.cs















最後把App.xaml.cs修改一下






InitializeComponent();


private void Application_Startup(object sender, StartupEventArgs e)





private void Application_Exit(object sender, EventArgs e)



這樣第一階段就完成了
第二部份:加入頁面傳值功能
雖然上面已做完換頁動作,但很多情況必須傳遞參數才能達到你要的目的,但是相對來說就比較麻煩一點了
建立一個新的Class,命名為Switcher.cs、ISwitchable.cs
Switcher.cs




//只要切換頁面但不傳值










ISwitchable.cs :這主要是要建立一個interface來共用並且傳值
在 namespace 裡有這段code就可以




再修改PageSwitcher.xml.cs





















回去改第一頁的版面Page.xaml
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<Grid x:Name="LayoutRoot" Background="White">
<StackPanel VerticalAlignment="Center">
<TextBlock FontSize="50" Text="這是第一頁" HorizontalAlignment="Center" />
<TextBlock FontSize="30" Text="你的名字:" Foreground="Blue"HorizontalAlignment="Center" />
<TextBox FontSize="30" Width="300" x:Name="YourName"></TextBox>
<Button x:Name="GotoPage2" Margin="20" FontSize="30" Width="300"Content="我想去第二頁"></Button>
</StackPanel>
</Grid>
</UserControl>
Page.xaml.cs














第二頁的版面Page2.xaml
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Width="400" Height="300">
<Grid x:Name="LayoutRoot" Background="White">
<StackPanel VerticalAlignment="Center">
<TextBlock FontSize="50" Text="這是第二頁" HorizontalAlignment="Center" />
<TextBlock FontSize="30" Text="我的名字是:" Foreground="Red"HorizontalAlignment="Center" />
<TextBlock FontSize="30" x:Name="MyName" Foreground="Blue" HorizontalAlignment="Center" />
<Button x:Name="GotoPage1" Margin="20" FontSize="30" Width="300"Content="我要回第一頁"></Button>
</StackPanel>
</Grid>
</UserControl>
Page2.xaml.cs


















最後也是去修改
App.xaml.cs






InitializeComponent();


private void Application_Startup(object sender, StartupEventArgs e)










private void Application_Exit(object sender, EventArgs e)



可以把PageSwitcher.xaml.cs再修改以方便除錯
















copyright http://www.dotblogs.com.tw/liuznsn/archive/2008/12/06/6276.aspx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!