add code
This commit is contained in:
parent
8c130ee791
commit
d036566570
13
ISwitchable.cs
Normal file
13
ISwitchable.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace PageSwitcher
|
||||
{
|
||||
interface ISwitchable
|
||||
{
|
||||
void UtilizeState(object state);
|
||||
}
|
||||
}
|
@ -23,6 +23,27 @@ namespace PageSwitcher
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
Switcher.pageSwitcher = this;
|
||||
Switcher.Switch(new UserControl1());
|
||||
}
|
||||
|
||||
public void Navigate(UserControl nextPage)
|
||||
{
|
||||
this.Content = nextPage;
|
||||
}
|
||||
|
||||
public void Navigate(UserControl nextPage, object state)
|
||||
{
|
||||
this.Content = nextPage;
|
||||
ISwitchable s = nextPage as ISwitchable;
|
||||
|
||||
if (s != null)
|
||||
{
|
||||
s.UtilizeState(state);
|
||||
} else
|
||||
{
|
||||
throw new ArgumentException("NextPage is not ISwichable! " + nextPage.Name.ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -55,6 +55,13 @@
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Compile Include="Switcher.cs" />
|
||||
<Compile Include="UserControl1.xaml.cs">
|
||||
<DependentUpon>UserControl1.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UserControl2.xaml.cs">
|
||||
<DependentUpon>UserControl2.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Page Include="MainWindow.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
@ -63,10 +70,19 @@
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="ISwitchable.cs" />
|
||||
<Compile Include="MainWindow.xaml.cs">
|
||||
<DependentUpon>MainWindow.xaml</DependentUpon>
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Page Include="UserControl1.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="UserControl2.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Properties\AssemblyInfo.cs">
|
||||
|
23
Switcher.cs
Normal file
23
Switcher.cs
Normal file
@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Controls;
|
||||
|
||||
namespace PageSwitcher
|
||||
{
|
||||
public static class Switcher
|
||||
{
|
||||
public static MainWindow pageSwitcher;
|
||||
public static void Switch(UserControl newPage)
|
||||
{
|
||||
pageSwitcher.Navigate(newPage);
|
||||
}
|
||||
|
||||
public static void Switch(UserControl newPage, object state)
|
||||
{
|
||||
pageSwitcher.Navigate(newPage, state);
|
||||
}
|
||||
}
|
||||
}
|
13
UserControl1.xaml
Normal file
13
UserControl1.xaml
Normal file
@ -0,0 +1,13 @@
|
||||
<UserControl x:Class="PageSwitcher.UserControl1"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:PageSwitcher"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
<Button x:Name="button1" Content="Button" Margin="108,137,117,143" Click="button1_Click"/>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
33
UserControl1.xaml.cs
Normal file
33
UserControl1.xaml.cs
Normal file
@ -0,0 +1,33 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace PageSwitcher
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for UserControl1.xaml
|
||||
/// </summary>
|
||||
public partial class UserControl1 : UserControl
|
||||
{
|
||||
public UserControl1()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Switcher.Switch(new UserControl2());
|
||||
}
|
||||
}
|
||||
}
|
14
UserControl2.xaml
Normal file
14
UserControl2.xaml
Normal file
@ -0,0 +1,14 @@
|
||||
<UserControl x:Class="PageSwitcher.UserControl2"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:PageSwitcher"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="300" d:DesignWidth="300">
|
||||
<Grid>
|
||||
<Button x:Name="button" Content="Button" Margin="113,138,112,142" Click="button_Click"/>
|
||||
<Label x:Name="label" Content="c2" HorizontalAlignment="Left" Margin="113,107,0,0" VerticalAlignment="Top"/>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
33
UserControl2.xaml.cs
Normal file
33
UserControl2.xaml.cs
Normal file
@ -0,0 +1,33 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace PageSwitcher
|
||||
{
|
||||
/// <summary>
|
||||
/// Interaction logic for UserControl2.xaml
|
||||
/// </summary>
|
||||
public partial class UserControl2 : UserControl
|
||||
{
|
||||
public UserControl2()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void button_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Switcher.Switch(new UserControl1());
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user