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()
|
public MainWindow()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
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>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</ApplicationDefinition>
|
</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">
|
<Page Include="MainWindow.xaml">
|
||||||
<Generator>MSBuild:Compile</Generator>
|
<Generator>MSBuild:Compile</Generator>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
@ -63,10 +70,19 @@
|
|||||||
<DependentUpon>App.xaml</DependentUpon>
|
<DependentUpon>App.xaml</DependentUpon>
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="ISwitchable.cs" />
|
||||||
<Compile Include="MainWindow.xaml.cs">
|
<Compile Include="MainWindow.xaml.cs">
|
||||||
<DependentUpon>MainWindow.xaml</DependentUpon>
|
<DependentUpon>MainWindow.xaml</DependentUpon>
|
||||||
<SubType>Code</SubType>
|
<SubType>Code</SubType>
|
||||||
</Compile>
|
</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>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Properties\AssemblyInfo.cs">
|
<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