diff options
19 files changed, 1274 insertions, 17 deletions
diff --git a/ApartmentAdmin b/ApartmentAdmin new file mode 160000 +Subproject f4d7fc3fa885184fb073fbae2aea28a476a85b8 diff --git a/ApartmentManager/ApartmentManager/ApartmentManager.csproj b/ApartmentManager/ApartmentManager/ApartmentManager.csproj index b08d130..f5ef9d3 100644 --- a/ApartmentManager/ApartmentManager/ApartmentManager.csproj +++ b/ApartmentManager/ApartmentManager/ApartmentManager.csproj @@ -95,19 +95,29 @@ <Compile Include="App.xaml.cs"> <DependentUpon>App.xaml</DependentUpon> </Compile> + <Compile Include="AppShell.xaml.cs"> + <DependentUpon>AppShell.xaml</DependentUpon> + </Compile> <Compile Include="Common\RelayCommand.cs" /> - <Compile Include="Model\Class1.cs" /> + <Compile Include="Controls\NavMenuListView.cs" /> + <Compile Include="Model\NavMenuItem.cs" /> + <Compile Include="Model\User.cs" /> <Compile Include="Persistency\Persistency.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> + <Compile Include="View\ApartmentPage.xaml.cs"> + <DependentUpon>ApartmentPage.xaml</DependentUpon> + </Compile> <Compile Include="View\LoginPage.xaml.cs"> <DependentUpon>LoginPage.xaml</DependentUpon> </Compile> + <Compile Include="View\PersonalInfoPage.xaml.cs"> + <DependentUpon>PersonalInfoPage.xaml</DependentUpon> + </Compile> </ItemGroup> <ItemGroup> <AppxManifest Include="Package.appxmanifest"> <SubType>Designer</SubType> </AppxManifest> - <None Include="ApartmentManager_TemporaryKey.pfx" /> </ItemGroup> <ItemGroup> <Content Include="Properties\Default.rd.xml" /> @@ -124,10 +134,26 @@ <Generator>MSBuild:Compile</Generator> <SubType>Designer</SubType> </ApplicationDefinition> + <Page Include="AppShell.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="Style\Styles.xaml"> + <Generator>MSBuild:Compile</Generator> + <SubType>Designer</SubType> + </Page> + <Page Include="View\ApartmentPage.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> <Page Include="View\LoginPage.xaml"> <SubType>Designer</SubType> <Generator>MSBuild:Compile</Generator> </Page> + <Page Include="View\PersonalInfoPage.xaml"> + <SubType>Designer</SubType> + <Generator>MSBuild:Compile</Generator> + </Page> </ItemGroup> <ItemGroup> <PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform"> diff --git a/ApartmentManager/ApartmentManager/App.xaml b/ApartmentManager/ApartmentManager/App.xaml index e4c9342..fc70d21 100644 --- a/ApartmentManager/ApartmentManager/App.xaml +++ b/ApartmentManager/ApartmentManager/App.xaml @@ -5,4 +5,13 @@ xmlns:local="using:ApartmentManager" RequestedTheme="Light"> + <Application.Resources> + <ResourceDictionary> + + <ResourceDictionary.MergedDictionaries> + <ResourceDictionary Source="/Style/Styles.xaml" /> + </ResourceDictionary.MergedDictionaries> + </ResourceDictionary> + </Application.Resources> + </Application> diff --git a/ApartmentManager/ApartmentManager/AppShell.xaml b/ApartmentManager/ApartmentManager/AppShell.xaml new file mode 100644 index 0000000..e775b93 --- /dev/null +++ b/ApartmentManager/ApartmentManager/AppShell.xaml @@ -0,0 +1,134 @@ +<Page x:Name="Root" + x:Class="ApartmentManager.AppShell" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="using:ApartmentManager" + xmlns:controls="using:ApartmentManager.Controls" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:model="using:ApartmentManager.Model" + xmlns:viewModel="using:ApartmentManager.ViewModel" + Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" + TabNavigation="Cycle" + mc:Ignorable="d"> + + <!-- Using a Page as the root for the app provides a design time experience as well as ensures that + when it runs on Mobile the app content won't appear under the system's StatusBar which is visible + by default with a transparent background. It will also take into account the presence of software + navigation buttons if they appear on a device. An app can opt-out by switching to UseCoreWindow. + --> + + <Page.Resources> + <DataTemplate x:Key="NavMenuItemTemplate" x:DataType="model:NavMenuItem" > + <Grid> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="48" /> + <ColumnDefinition /> + </Grid.ColumnDefinitions> + <Rectangle x:Name="SelectedPipe" + Width="6" + Height="24" + Margin="-2,0,0,0" + Fill="DodgerBlue" + Visibility="{x:Bind SelectedVis, Mode=TwoWay}" + VerticalAlignment="Center" + HorizontalAlignment="Left"/> + <!-- Showing a ToolTip and the Label is redundant. We put the ToolTip on the icon. + It appears when the user hovers over the icon, but not the label which provides + value when the SplitView is 'Compact' while reducing the likelihood of showing + redundant information when the label is shown.--> + <FontIcon x:Name="Glyph" FontSize="16" Glyph="{x:Bind SymbolAsChar}" VerticalAlignment="Center" HorizontalAlignment="Center" ToolTipService.ToolTip="{x:Bind Label}"/> + <TextBlock x:Name="Text" Grid.Column="1" Text="{x:Bind Label}" Style="{StaticResource BodyTextBlockStyle}" TextWrapping="NoWrap" VerticalAlignment="Center"/> + </Grid> + </DataTemplate> + + </Page.Resources> + + <Grid x:Name="LayoutRoot"> + + <Grid.ColumnDefinitions> + <ColumnDefinition Width="48"/> + <ColumnDefinition/> + </Grid.ColumnDefinitions> + + <Grid.RowDefinitions> + <RowDefinition Height="48"/> + <RowDefinition/> + </Grid.RowDefinitions> + + <!-- Declared first for screen reader navigation order, ZIndex specified to have it rendered above everything else. --> + <ToggleButton x:Name="TogglePaneButton" + Canvas.ZIndex="100" + TabIndex="1" + Style="{StaticResource SplitViewTogglePaneButtonStyle}" + IsChecked="{Binding IsPaneOpen, ElementName=RootSplitView, Mode=TwoWay}" + ToolTipService.ToolTip="Navigation"/> + + <Grid Grid.Column="1" Grid.Row="0" Background="White"> + + <Grid.ColumnDefinitions> + <ColumnDefinition Width="*"/> + <ColumnDefinition Width="200"/> + </Grid.ColumnDefinitions> + + <Image Grid.Column="0" Source="/Assets/Images/fvacanceslogo.png" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="200,5,0,5" Height="40" /> + <StackPanel x:Name="StackPanel1" Grid.Column="1" Orientation="Horizontal"> + <AppBarButton Icon="AddFriend" Label="Sign up" Style="{StaticResource SignButtonStyle}" Width="Auto"/> + <AppBarButton Icon="Contact" Label="Sign in" Style="{StaticResource SignButtonStyle}" Width="Auto"/> + </StackPanel> + <StackPanel x:Name="StackPanel2" Grid.Column="1" Orientation="Horizontal" Visibility="Collapsed"> + <AppBarButton Icon="Contact" Label="My account" Style="{StaticResource SignButtonStyle}" Width="Auto"/> + <AppBarButton Icon="Sync" Label="Logout" Style="{StaticResource SignButtonStyle}" Width="Auto" Command="{Binding LogOutCommand}"/> + </StackPanel> + </Grid> + + <!-- Top-level navigation menu + app content --> + <SplitView x:Name="RootSplitView" + Grid.Column="0" + Grid.ColumnSpan="2" + Grid.Row="1" + DisplayMode="CompactInline" + OpenPaneLength="200" + PaneBackground="{ThemeResource ApplicationPageBackgroundThemeBrush}" + IsTabStop="False"> + + <SplitView.Pane> + <Grid x:Name="PaneContentGrid"> + + + <!-- A custom ListView to display the items in the pane. The automation Name is set in the ContainerContentChanging event. --> + <controls:NavMenuListView x:Name="NavMenuList" + TabIndex="3" + ItemContainerStyle="{StaticResource NavMenuItemContainerStyle}" + ItemTemplate="{StaticResource NavMenuItemTemplate}" + ItemInvoked="NavMenuList_ItemInvoked"/> + <controls:NavMenuListView x:Name="NavMenuList2" + TabIndex="3" + Margin="0" + ItemContainerStyle="{StaticResource NavMenuItemContainerStyle}" + ItemTemplate="{StaticResource NavMenuItemTemplate}" + ItemInvoked="NavMenuList_ItemInvoked" + VerticalAlignment="Bottom"/> + + </Grid> + </SplitView.Pane> + + <SplitView.Content> + <!-- OnNavigatingToPage we synchronize the selected item in the nav menu with the current page.--> + <Frame x:Name="Frame" + Margin="0,0,0,0" + Navigating="OnNavigatingToPage"> + <Frame.ContentTransitions> + <TransitionCollection> + <NavigationThemeTransition> + <NavigationThemeTransition.DefaultNavigationTransitionInfo> + <EntranceNavigationTransitionInfo/> + </NavigationThemeTransition.DefaultNavigationTransitionInfo> + </NavigationThemeTransition> + </TransitionCollection> + </Frame.ContentTransitions> + </Frame> + </SplitView.Content> + </SplitView> + </Grid> +</Page> diff --git a/ApartmentManager/ApartmentManager/AppShell.xaml.cs b/ApartmentManager/ApartmentManager/AppShell.xaml.cs new file mode 100644 index 0000000..0bd4f7f --- /dev/null +++ b/ApartmentManager/ApartmentManager/AppShell.xaml.cs @@ -0,0 +1,144 @@ +using ApartmentManager.Controls; +using ApartmentManager.Model; +using ApartmentManager.View; +using System.Collections.Generic; +using System.Linq; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Navigation; + +namespace ApartmentManager +{ + /// <summary> + /// The "chrome" layer of the app that provides top-level navigation with + /// proper keyboarding navigation. + /// </summary> + public sealed partial class AppShell : Page + { + // Declare the top level nav items + private List<NavMenuItem> navMenuItems = new List<NavMenuItem>( + new[] + { + new NavMenuItem() + { + Symbol = Symbol.Home, + Label = "Home", + DestPage = typeof(ApartmentPage), + IsSelected = true + } + }); + + public static AppShell Current = null; + + /// <summary> + /// Initializes a new instance of the AppShell, sets the static 'Current' reference, + /// adds callbacks for Back requests and changes in the SplitView's DisplayMode, and + /// provide the nav menu list with the data to display. + /// </summary> + public AppShell() + { + InitializeComponent(); + + List<NavMenuItem> topNavMenuItems = navMenuItems.GetRange(0, 1); + // List<NavMenuItem> bottomNavMenuItems = navMenuItems.GetRange(3, 2); + + NavMenuList.ItemsSource = topNavMenuItems; + // NavMenuList2.ItemsSource = bottomNavMenuItems; + } + + public Frame AppFrame { get { return Frame; } } + + #region Navigation + + /// <summary> + /// Navigate to the Page for the selected <paramref name="listViewItem"/>. + /// </summary> + /// <param name="sender"></param> + /// <param name="listViewItem"></param> + private void NavMenuList_ItemInvoked(object sender, ListViewItem listViewItem) + { + foreach (var i in navMenuItems) + { + i.IsSelected = false; + } + + var item = (NavMenuItem)((NavMenuListView)sender).ItemFromContainer(listViewItem); + + if (item != null) + { + item.IsSelected = true; + if (item.DestPage != null && + item.DestPage != AppFrame.CurrentSourcePageType) + { + AppFrame.Navigate(item.DestPage, item.Arguments); + } + } + } + + /// <summary> + /// Ensures the nav menu reflects reality when navigation is triggered outside of + /// the nav menu buttons. + /// </summary> + /// <param name="sender"></param> + /// <param name="e"></param> + private void OnNavigatingToPage(object sender, NavigatingCancelEventArgs e) + { + if (e.NavigationMode == NavigationMode.Back) + { + var item = (from p in navMenuItems where p.DestPage == e.SourcePageType select p).SingleOrDefault(); + if (item == null && AppFrame.BackStackDepth > 0) + { + // In cases where a page drills into sub-pages then we'll highlight the most recent + // navigation menu item that appears in the BackStack + foreach (var entry in this.AppFrame.BackStack.Reverse()) + { + item = (from p in navMenuItems where p.DestPage == entry.SourcePageType select p).SingleOrDefault(); + if (item != null) + break; + } + } + + foreach (var i in navMenuItems) + { + i.IsSelected = false; + } + if (item != null) + { + item.IsSelected = true; + } + + var container = (ListViewItem)NavMenuList.ContainerFromItem(item); + + // While updating the selection state of the item prevent it from taking keyboard focus. If a + // user is invoking the back button via the keyboard causing the selected nav menu item to change + // then focus will remain on the back button. + if (container != null) container.IsTabStop = false; + NavMenuList.SetSelectedItem(container); + if (container != null) container.IsTabStop = true; + } + } + + #endregion Navigation + + /// <summary> + /// Public method to allow pages to open SplitView's pane. + /// Used for custom app shortcuts like navigating left from page's left-most item + /// </summary> + public void OpenNavePane() + { + TogglePaneButton.IsChecked = true; + } + + public void MakeStackPanel1Visible() + { + StackPanel1.Visibility = Visibility.Visible; + StackPanel2.Visibility = Visibility.Collapsed; + } + + public void MakeStackPanel2Visible() + { + StackPanel1.Visibility = Visibility.Collapsed; + StackPanel2.Visibility = Visibility.Visible; + } + } +}
\ No newline at end of file diff --git a/ApartmentManager/ApartmentManager/Controls/NavMenuListView.cs b/ApartmentManager/ApartmentManager/Controls/NavMenuListView.cs new file mode 100644 index 0000000..9591ad1 --- /dev/null +++ b/ApartmentManager/ApartmentManager/Controls/NavMenuListView.cs @@ -0,0 +1,120 @@ +using System; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Media.Animation; + +namespace ApartmentManager.Controls +{ + /// <summary> + /// A specialized ListView to represent the items in the navigation menu. + /// </summary> + /// <remarks> + /// This class handles the following: + /// 1. Sizes the panel that hosts the items so they fit in the hosting pane. Otherwise, the keyboard + /// may appear cut off on one side b/c the Pane clips instead of affecting layout. + /// 2. Provides a single selection experience where keyboard focus can move without changing selection. + /// Both the 'Space' and 'Enter' keys will trigger selection. The up/down arrow keys can move + /// keyboard focus without triggering selection. This is different than the default behavior when + /// SelectionMode == Single. The default behavior for a ListView in single selection requires using + /// the Ctrl + arrow key to move keyboard focus without triggering selection. Users won't expect + /// this type of keyboarding model on the nav menu. + /// </remarks> + public class NavMenuListView : ListView + { + private SplitView _splitViewHost; + + public NavMenuListView() + { + SelectionMode = ListViewSelectionMode.Single; + IsItemClickEnabled = true; + ItemClick += ItemClickedHandler; + + // Locate the hosting SplitView control + Loaded += (s, a) => + { + var parent = VisualTreeHelper.GetParent(this); + while (parent != null && !(parent is SplitView)) + { + parent = VisualTreeHelper.GetParent(parent); + } + + if (parent != null) + { + _splitViewHost = parent as SplitView; + } + }; + } + + protected override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + // Remove the entrance animation on the item containers. + for (int i = 0; i < ItemContainerTransitions.Count; i++) + { + if (ItemContainerTransitions[i] is EntranceThemeTransition) + { + ItemContainerTransitions.RemoveAt(i); + } + } + } + + /// <summary> + /// Mark the <paramref name="item"/> as selected and ensures everything else is not. + /// If the <paramref name="item"/> is null then everything is unselected. + /// </summary> + /// <param name="item"></param> + public void SetSelectedItem(ListViewItem item) + { + int index = -1; + if (item != null) + { + index = IndexFromContainer(item); + } + + for (int i = 0; i < Items.Count; i++) + { + var lvi = (ListViewItem)ContainerFromIndex(i); + if (i != index) + { + lvi.IsSelected = false; + } + else if (i == index) + { + lvi.IsSelected = true; + } + } + } + + /// <summary> + /// Occurs when an item has been selected + /// </summary> + public event EventHandler<ListViewItem> ItemInvoked; + + private void ItemClickedHandler(object sender, ItemClickEventArgs e) + { + // Triggered when the item is selected using something other than a keyboard + var item = ContainerFromItem(e.ClickedItem); + InvokeItem(item); + } + + private void InvokeItem(object focusedItem) + { + SetSelectedItem(focusedItem as ListViewItem); + ItemInvoked?.Invoke(this, focusedItem as ListViewItem); + + if (_splitViewHost.IsPaneOpen && ( + _splitViewHost.DisplayMode == SplitViewDisplayMode.CompactOverlay || + _splitViewHost.DisplayMode == SplitViewDisplayMode.Overlay)) + { + _splitViewHost.IsPaneOpen = false; + } + + if (focusedItem is ListViewItem) + { + ((ListViewItem)focusedItem).Focus(FocusState.Programmatic); + } + } + } +}
\ No newline at end of file diff --git a/ApartmentManager/ApartmentManager/Model/Class1.cs b/ApartmentManager/ApartmentManager/Model/Class1.cs deleted file mode 100644 index 08e3d73..0000000 --- a/ApartmentManager/ApartmentManager/Model/Class1.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ApartmentManager.Model -{ - class Class1 - { - } -} diff --git a/ApartmentManager/ApartmentManager/Model/NavMenuItem.cs b/ApartmentManager/ApartmentManager/Model/NavMenuItem.cs new file mode 100644 index 0000000..d71d198 --- /dev/null +++ b/ApartmentManager/ApartmentManager/Model/NavMenuItem.cs @@ -0,0 +1,60 @@ +using System; +using System.ComponentModel; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; + +namespace ApartmentManager.Model +{ + /// <summary> + /// Data to represent an item in the nav menu. + /// </summary> + public class NavMenuItem : INotifyPropertyChanged + { + public string Label { get; set; } + public Symbol Symbol { get; set; } + + public char SymbolAsChar + { + get + { + return (char)this.Symbol; + } + } + + private bool _isSelected; + + public bool IsSelected + { + get { return _isSelected; } + set + { + _isSelected = value; + SelectedVis = value ? Visibility.Visible : Visibility.Collapsed; + this.OnPropertyChanged("IsSelected"); + } + } + + private Visibility _selectedVis = Visibility.Collapsed; + + public Visibility SelectedVis + { + get { return _selectedVis; } + set + { + _selectedVis = value; + this.OnPropertyChanged("SelectedVis"); + } + } + + public Type DestPage { get; set; } + public object Arguments { get; set; } + + public event PropertyChangedEventHandler PropertyChanged = delegate { }; + + public void OnPropertyChanged(string propertyName) + { + // Raise the PropertyChanged event, passing the name of the property whose value has changed. + this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); + } + } +}
\ No newline at end of file diff --git a/ApartmentManager/ApartmentManager/Model/User.cs b/ApartmentManager/ApartmentManager/Model/User.cs new file mode 100644 index 0000000..280d959 --- /dev/null +++ b/ApartmentManager/ApartmentManager/Model/User.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ApartmentManager.Model +{ + public class User + { + public string Name { get; set; } + public string LastName { get; set; } + public int Phone { get; set; } + public DateTime BirthDate { get; set; } + public string Email { get; set; } + public int ApartmentNr { get; set; } + + public User() { } + + public User(string Name, string LastName, int Phone, DateTime BirthDate, string Email, int ApartmentNr) + { + this.Name = Name; + this.LastName = LastName; + this.Phone = Phone; + this.BirthDate = BirthDate; + this.Email = Email; + this.ApartmentNr = ApartmentNr; + + } + + //public override string ToString() + //{ + // return string.Format("Hotelno {0} Name {1} Address {2}", Hotel_No, Name, Address); + //} + + } +} diff --git a/ApartmentManager/ApartmentManager/Style/Styles.xaml b/ApartmentManager/ApartmentManager/Style/Styles.xaml new file mode 100644 index 0000000..0b53355 --- /dev/null +++ b/ApartmentManager/ApartmentManager/Style/Styles.xaml @@ -0,0 +1,557 @@ +<ResourceDictionary + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:interop="using:Windows.UI.Xaml.Interop" + xmlns:controls="using:FranceVacances.Controls"> + + <SolidColorBrush x:Key="SplitViewLightDismissOverlayBackground" Opacity="0.6" Color="{ThemeResource SystemChromeLowColor}"/> + + <Style x:Key="SplitViewTogglePaneButtonStyle" TargetType="ToggleButton"> + <Setter Property="FontSize" Value="16" /> + <Setter Property="FontFamily" Value="{StaticResource SymbolThemeFontFamily}" /> + <Setter Property="MinHeight" Value="48" /> + <Setter Property="MinWidth" Value="48" /> + <Setter Property="Margin" Value="0,0,0,0" /> + <Setter Property="Padding" Value="0" /> + <Setter Property="HorizontalAlignment" Value="Left" /> + <Setter Property="VerticalAlignment" Value="Top" /> + <Setter Property="HorizontalContentAlignment" Value="Center" /> + <Setter Property="VerticalContentAlignment" Value="Center" /> + <Setter Property="Background" Value="Transparent" /> + <Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseHighBrush}" /> + <Setter Property="Content" Value="" /> + <Setter Property="AutomationProperties.Name" Value="Navigation" /> + <Setter Property="UseSystemFocusVisuals" Value="True" /> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="ToggleButton"> + <Grid x:Name="LayoutRoot" + Background="{TemplateBinding Background}"> + <VisualStateManager.VisualStateGroups> + <VisualStateGroup x:Name="CommonStates"> + <VisualState x:Name="Normal" /> + <VisualState x:Name="PointerOver"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(Grid.Background)"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + <VisualState x:Name="Pressed"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(Grid.Background)"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListMediumBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + <VisualState x:Name="Disabled"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="(TextBlock.Foreground)"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + <VisualState x:Name="Checked"/> + <VisualState x:Name="CheckedPointerOver"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(Grid.Background)"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + <VisualState x:Name="CheckedPressed"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetName="LayoutRoot" Storyboard.TargetProperty="(Grid.Background)"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListMediumBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + <VisualState x:Name="CheckedDisabled"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="(TextBlock.Foreground)"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + </VisualStateGroup> + </VisualStateManager.VisualStateGroups> + <ContentPresenter x:Name="ContentPresenter" + Content="{TemplateBinding Content}" + Margin="{TemplateBinding Padding}" + HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" + VerticalAlignment="{TemplateBinding VerticalContentAlignment}" + AutomationProperties.AccessibilityView="Raw" /> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + <Style x:Key="SplitViewPaneButtonStyle" TargetType="Button"> + <Setter Property="Padding" Value="0"/> + <Setter Property="Background" Value="Transparent" /> + <Setter Property="FontFamily" Value="{StaticResource SymbolThemeFontFamily}"/> + <Setter Property="FontSize" Value="16"/> + <Setter Property="MinHeight" Value="48" /> + <Setter Property="MinWidth" Value="48" /> + <Setter Property="HorizontalContentAlignment" Value="Center" /> + <Setter Property="VerticalContentAlignment" Value="Center" /> + <Setter Property="UseSystemFocusVisuals" Value="True"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="Button"> + <Grid x:Name="RootGrid" Background="{TemplateBinding Background}"> + <VisualStateManager.VisualStateGroups> + <VisualStateGroup x:Name="CommonStates"> + <VisualState x:Name="Normal"> + <Storyboard> + <PointerUpThemeAnimation Storyboard.TargetName="RootGrid"/> + </Storyboard> + </VisualState> + <VisualState x:Name="PointerOver"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="RootGrid"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + <PointerUpThemeAnimation Storyboard.TargetName="RootGrid"/> + </Storyboard> + </VisualState> + <VisualState x:Name="Pressed"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="RootGrid"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListMediumBrush}"/> + </ObjectAnimationUsingKeyFrames> + <PointerDownThemeAnimation Storyboard.TargetName="RootGrid"/> + </Storyboard> + </VisualState> + <VisualState x:Name="Disabled"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="RootGrid"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlBackgroundBaseLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="ContentPresenter"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledTransparentBrush}"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + </VisualStateGroup> + </VisualStateManager.VisualStateGroups> + <ContentPresenter x:Name="ContentPresenter" + AutomationProperties.AccessibilityView="Raw" + Padding="{TemplateBinding Padding}" + ContentTemplate="{TemplateBinding ContentTemplate}" + ContentTransitions="{TemplateBinding ContentTransitions}" + Content="{TemplateBinding Content}" + HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" + VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + <Style x:Key="NavMenuItemContainerStyle" TargetType="ListViewItem"> + <Setter Property="MinWidth" Value="{StaticResource SplitViewCompactPaneThemeLength}"/> + <Setter Property="Height" Value="48"/> + <Setter Property="Padding" Value="0"/> + <Setter Property="UseSystemFocusVisuals" Value="True" /> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="ListViewItem"> + <ListViewItemPresenter ContentTransitions="{TemplateBinding ContentTransitions}" + Control.IsTemplateFocusTarget="True" + SelectionCheckMarkVisualEnabled="False" + PointerOverBackground="{ThemeResource SystemControlHighlightListLowBrush}" + SelectedBackground="Transparent" + SelectedForeground="{ThemeResource SystemControlForegroundAccentBrush}" + SelectedPointerOverBackground="{ThemeResource SystemControlHighlightListLowBrush}" + PressedBackground="{ThemeResource SystemControlHighlightListMediumBrush}" + SelectedPressedBackground="{ThemeResource SystemControlHighlightListMediumBrush}" + DisabledOpacity="{ThemeResource ListViewItemDisabledThemeOpacity}" + HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" + VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" + ContentMargin="{TemplateBinding Padding}"/> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style x:Key="SignButtonStyle" TargetType="AppBarButton"> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseHighBrush}"/> + <Setter Property="HorizontalAlignment" Value="Left"/> + <Setter Property="VerticalAlignment" Value="Top"/> + <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}"/> + <Setter Property="FontWeight" Value="Normal"/> + <Setter Property="Width" Value="68"/> + <Setter Property="Margin" Value="0,0,0,0"/> + <Setter Property="UseSystemFocusVisuals" Value="True"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="AppBarButton"> + <Grid x:Name="Root" Background="{TemplateBinding Background}" MaxWidth="{TemplateBinding MaxWidth}" MinWidth="{TemplateBinding MinWidth}"> + <VisualStateManager.VisualStateGroups> + <VisualStateGroup x:Name="ApplicationViewStates"> + <VisualState x:Name="FullSize"/> + <VisualState x:Name="Compact"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="TextLabel"> + <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + <VisualState x:Name="Overflow"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ContentRoot"> + <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="OverflowTextLabel"> + <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + <VisualState x:Name="OverflowWithToggleButtons"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="ContentRoot"> + <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Storyboard.TargetName="OverflowTextLabel"> + <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Margin" Storyboard.TargetName="OverflowTextLabel"> + <DiscreteObjectKeyFrame KeyTime="0" Value="38,0,12,0"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + </VisualStateGroup> + <VisualStateGroup x:Name="CommonStates"> + <VisualState x:Name="Normal"> + <Storyboard> + <PointerUpThemeAnimation Storyboard.TargetName="OverflowTextLabel"/> + </Storyboard> + </VisualState> + <VisualState x:Name="PointerOver"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="Root"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="Content"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="TextLabel"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="OverflowTextLabel"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/> + </ObjectAnimationUsingKeyFrames> + <PointerUpThemeAnimation Storyboard.TargetName="OverflowTextLabel"/> + </Storyboard> + </VisualState> + <VisualState x:Name="Pressed"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="Root"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightListMediumBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="Content"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="TextLabel"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="OverflowTextLabel"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}"/> + </ObjectAnimationUsingKeyFrames> + <PointerDownThemeAnimation Storyboard.TargetName="OverflowTextLabel"/> + </Storyboard> + </VisualState> + <VisualState x:Name="Disabled"> + <Storyboard> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="Content"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="TextLabel"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="OverflowTextLabel"> + <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}"/> + </ObjectAnimationUsingKeyFrames> + </Storyboard> + </VisualState> + </VisualStateGroup> + <VisualStateGroup x:Name="InputModeStates"> + <VisualState x:Name="InputModeDefault"/> + <VisualState x:Name="TouchInputMode"> + <VisualState.Setters> + <Setter Target="OverflowTextLabel.Padding" Value="0,11,0,13"/> + </VisualState.Setters> + </VisualState> + </VisualStateGroup> + </VisualStateManager.VisualStateGroups> + <StackPanel x:Name="ContentRoot" MinHeight="{ThemeResource AppBarThemeCompactHeight}" Orientation="Horizontal" Padding="15,0,5,0" MinWidth="100"> + <ContentPresenter x:Name="Content" AutomationProperties.AccessibilityView="Raw" Content="{TemplateBinding Icon}" Foreground="{TemplateBinding Foreground}" Height="20" Margin="0"/> + <TextBlock x:Name="TextLabel" Foreground="{TemplateBinding Foreground}" FontSize="12" FontFamily="{TemplateBinding FontFamily}" TextAlignment="Center" TextWrapping="Wrap" Text="{TemplateBinding Label}" VerticalAlignment="Center" Margin="5,0,0,0"/> + </StackPanel> + <TextBlock x:Name="OverflowTextLabel" Foreground="{TemplateBinding Foreground}" FontSize="15" FontFamily="{TemplateBinding FontFamily}" HorizontalAlignment="Stretch" Margin="12,0,12,0" Padding="0,5,0,7" TextAlignment="Left" TextWrapping="NoWrap" Text="{TemplateBinding Label}" TextTrimming="Clip" Visibility="Collapsed" VerticalAlignment="Center"/> + </Grid> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + + + + <!-- Grid Styles --> + + <!-- Background --> + <ImageBrush x:Name="BackgroundPicture" ImageSource="../Assets/Images/BackgroundImages/parryPeak.jpg"/> + <Style x:Name="GridBackground" TargetType="Grid"> + <Setter Property="Background" Value="{StaticResource BackgroundPicture}"/> + </Style> + + <!-- Category Background --> + <Style x:Key="CategoryBackgroundStyle" TargetType="Image"> + <Setter Property="Grid.RowSpan" Value="3"/> + <Setter Property="Canvas.ZIndex" Value="-1"/> + <Setter Property="Stretch" Value="UniformToFill"/> + </Style> + + <!-- Border Grid --> + <Style x:Name="BorderGridStyle" TargetType="Grid"> + <Setter Property="BorderThickness" Value="2"/> + <Setter Property="BorderBrush" Value="#CCFFFFFF"/> + <Setter Property="Background" Value="DodgerBlue"/> + </Style> + + <!-- Login Grid --> + <Style x:Name="LoginGrid" TargetType="Grid" BasedOn="{StaticResource BorderGridStyle}" > + <Setter Property="VerticalAlignment" Value="Center"/> + <Setter Property="HorizontalAlignment" Value="Center"/> + <Setter Property="Width" Value="400"/> + <Setter Property="Height" Value="250"/> + </Style> + + <!-- Create User Grid --> + <Style x:Name="CreateUserGrid" TargetType="Grid" BasedOn="{StaticResource BorderGridStyle}"> + <Setter Property="VerticalAlignment" Value="Center"/> + <Setter Property="HorizontalAlignment" Value="Center"/> + <Setter Property="MinWidth" Value="400"/> + <Setter Property="Width" Value="600"/> + <Setter Property="Height" Value="950"/> + </Style> + + <!-- Category Grid --> + <Style x:Key="CategoryGridStyle" TargetType="Grid"> + <Setter Property="BorderThickness" Value="1,0,1,1"/> + <Setter Property="BorderBrush" Value="White"/> + </Style> + + <!-- /Grid Styles --> + + <!-- Stackpanel Styles --> + + <!-- Login Stackpanel --> + <Style x:Name="LoginStackpanel" TargetType="StackPanel"> + <Setter Property="VerticalAlignment" Value="Center"/> + <Setter Property="HorizontalAlignment" Value="Center"/> + <Setter Property="Margin" Value="0,0,0,40"/> + <Setter Property="Width" Value="400"/> + </Style> + + <!-- Create User Stackpanel Left --> + + <Style x:Name="CreateUserStackpanelLeft" TargetType="StackPanel"> + <Setter Property="HorizontalAlignment" Value="Stretch"/> + <Setter Property="Margin" Value="10"/> + </Style> + + <!-- Create User Stackpanel Right --> + + <Style x:Name="CreateUserStackpanelRight" TargetType="StackPanel"> + <Setter Property="Margin" Value="10,45,10,10"/> + </Style> + + <!-- /Stackpanel Styles --> + + + <!-- Font Types for TextBlocks --> + + <Style x:Name="ContentFontStyle" TargetType="TextBlock"> + <Setter Property="FontFamily" Value="Segoe UI"/> + </Style> + + <!-- /Font Types TextBlocks --> + + + <!-- TextBlock Styles --> + + <!-- FontStyle for Create User TextBlocks --> + <Style x:Name="CreateUserFontStyle" TargetType="TextBlock" BasedOn="{StaticResource ContentFontStyle}"> + <Setter Property="Foreground" Value="GhostWhite"/> + <Setter Property="Margin" Value="5,10,0,0"/> + </Style> + + <!-- FontStyle for Error TextBlocks --> + + <Style x:Name="ErrorTextFontStyle" TargetType="TextBlock" BasedOn="{StaticResource ContentFontStyle}"> + <Setter Property="VerticalAlignment" Value="Top"/> + <Setter Property="TextWrapping" Value="Wrap"/> + <Setter Property="Foreground" Value="Gold"/> + <Setter Property="Margin" Value="0,0,0,42"/> + </Style> + + <!-- FontStyle for Headline Basic Textblocks --> + + <Style x:Name="HeadlineBasicFontStyle" TargetType="TextBlock" BasedOn="{StaticResource ContentFontStyle}"> + <Setter Property="FontSize" Value="32"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="FontWeight" Value="Bold"/> + <Setter Property="Height" Value="43"/> + </Style> + + <!-- FontStyle for Headline Login Textblock --> + + <Style x:Name="LoginHeadlineStyle" TargetType="TextBlock" BasedOn="{StaticResource HeadlineBasicFontStyle}"> + <Setter Property="VerticalAlignment" Value="Top"/> + <Setter Property="HorizontalAlignment" Value="Center"/> + <Setter Property="Margin" Value="0,10,0,0"/> + </Style> + + <!-- FontStyle for Headline Create User Textblock --> + + <Style x:Name="CreateUserHeadlineStyle" TargetType="TextBlock" BasedOn="{StaticResource HeadlineBasicFontStyle}"> + <Setter Property="VerticalAlignment" Value="Center"/> + <Setter Property="HorizontalAlignment" Value="Center"/> + <Setter Property="Width" Value="173"/> + </Style> + + <!-- FontStyle for Login Error Textblock --> + <Style x:Name="LoginErrorTextBlockStyle" TargetType="TextBlock" BasedOn="{StaticResource ContentFontStyle}"> + <Setter Property="VerticalAlignment" Value="Top"/> + <Setter Property="HorizontalAlignment" Value="Center"/> + <Setter Property="Foreground" Value="Gold"/> + <Setter Property="Margin" Value="0,0,0,10"/> + </Style> + + <!-- Category Label Textblock Style --> + <Style x:Key="CategoryLabelStyle" TargetType="TextBlock"> + <Setter Property="Grid.Row" Value="0"/> + <Setter Property="FontFamily" Value="/Assets/Fonts/BreeSerif.ttf#Bree Serif"/> + <Setter Property="FontSize" Value="36"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="CharacterSpacing" Value="75"/> + <Setter Property="LineStackingStrategy" Value="BlockLineHeight"/> + <Setter Property="TextLineBounds" Value="TrimToCapHeight"/> + <Setter Property="Margin" Value="10,0,0,0"/> + <Setter Property="VerticalAlignment" Value="Bottom"/> + </Style> + + <!-- Category Description Textblock Style --> + <Style x:Key="CategoryDescriptionStyle" TargetType="TextBlock"> + <Setter Property="Grid.Row" Value="1"/> + <Setter Property="FontSize" Value="20"/> + <Setter Property="Foreground" Value="White"/> + <Setter Property="Margin" Value="10,0,20,0"/> + <Setter Property="TextWrapping" Value="WrapWholeWords"/> + </Style> + + <!-- /TextBlock Styles --> + + <!-- TextBox and PasswordBox Styles --> + + <!-- Create User TextBox Style --> + <Style x:Name="CreateUserTextBoxStyle" TargetType="TextBox"> + <Setter Property="BorderBrush" Value="#CCFFFFFF"/> + </Style> + + <!-- Password Standard Style --> + <Style x:Name="PasswordStandardStyle" TargetType="PasswordBox"> + <Setter Property="BorderBrush" Value="#CCFFFFFF"/> + </Style> + + <!-- PasswordBox Login Style --> + <Style x:Name="PasswordLoginStyle" TargetType="PasswordBox" BasedOn="{StaticResource PasswordStandardStyle}"> + <Setter Property="Width" Value="180"/> + <Setter Property="Margin" Value="0,10,0,0"/> + </Style> + + <!-- PasswordBox Create User Style --> + <Style x:Name="CreateUserPasswordBoxStyle" TargetType="PasswordBox" BasedOn="{StaticResource PasswordStandardStyle}"> + </Style> + + <!-- Login TextBox Style --> + <Style x:Name="LoginTextBoxStyle" TargetType="TextBox"> + <Setter Property="Width" Value="180"/> + <Setter Property="Margin" Value="0,10,0,0"/> + <Setter Property="BorderBrush" Value="#CCFFFFFF"/> + </Style> + + <!-- /TextBox and PasswordBox Style --> + + <!-- Button Styles --> + + <!-- Standard Button Style--> + <Style x:Name="StandardButtonStyle" TargetType="Button"> + <Setter Property="BorderBrush" Value="#CCFFFFFF"/> + <Setter Property="Background" Value="Gold"/> + <Setter Property="Height" Value="50"/> + <Setter Property="FontSize" Value="20"/> + <Setter Property="FontWeight" Value="Bold"/> + </Style> + + <!-- Register Here Button Style --> + <Style x:Name="RegisterHereButtonStyle" TargetType="Button"> + <Setter Property="VerticalAlignment" Value="Bottom"/> + <Setter Property="HorizontalAlignment" Value="Left"/> + <Setter Property="Margin" Value="0,0,0,5"/> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="Foreground" Value="Transparent"/> + <Setter Property="BorderBrush" Value="Transparent"/> + <Setter Property="BorderThickness" Value="0"/> + </Style> + + <!-- Login Button Style --> + <Style x:Name="LoginButton" TargetType="Button" BasedOn="{StaticResource StandardButtonStyle}"> + <Setter Property="VerticalAlignment" Value="Bottom"/> + <Setter Property="HorizontalAlignment" Value="Right"/> + <Setter Property="Width" Value="120"/> + <Setter Property="Margin" Value="0,0,10,10"/> + </Style> + + <!-- Create User Button Style --> + <Style x:Name="CreateButtonStyle" TargetType="Button" BasedOn="{StaticResource StandardButtonStyle}"> + <Setter Property="VerticalAlignment" Value="Bottom"/> + <Setter Property="HorizontalAlignment" Value="Center"/> + <Setter Property="Width" Value="250"/> + <Setter Property="Margin" Value="20,100,10,10"/> + </Style> + + + <!-- /Button Styles --> + + <!-- ListViewItem Styles --> + + <!-- Location ListViewItem Style --> + <Style x:Key="LocationStyle" TargetType="ListViewItem"> + <Setter Property="FontFamily" Value="/Assets/Fonts/BreeSerif.ttf#Bree Serif"/> + <Setter Property="FontSize" Value="24"/> + <Setter Property="Foreground" Value="White"/> + </Style> + + <!-- /Listview Item Styles --> + + +</ResourceDictionary> diff --git a/ApartmentManager/ApartmentManager/View/ApartmentPage.xaml b/ApartmentManager/ApartmentManager/View/ApartmentPage.xaml new file mode 100644 index 0000000..c2a3594 --- /dev/null +++ b/ApartmentManager/ApartmentManager/View/ApartmentPage.xaml @@ -0,0 +1,29 @@ +<Page + x:Class="ApartmentManager.View.ApartmentPage" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="using:ApartmentManager.View" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + mc:Ignorable="d"> + + <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> + <StackPanel Orientation="Horizontal" VerticalAlignment="Top" Width="1000" Margin="50" > + <StackPanel Width="600" Height="200" VerticalAlignment="Top" HorizontalAlignment="Left"> + <TextBlock Text="Apartment Address :" FontSize="20" ></TextBlock> + <TextBlock Text="Floor :" FontSize="20"></TextBlock> + <TextBlock Text="Apartment Number :" FontSize="20"></TextBlock> + <TextBlock Text="Size :" FontSize="20"></TextBlock> + <TextBlock Text="Number of Rooms :" FontSize="20"></TextBlock> + <TextBlock Text="Monthly Charge:" FontSize="20"></TextBlock> + </StackPanel> + <StackPanel Width="400" Height="300" VerticalAlignment="Top" HorizontalAlignment="Right"> + <Button Margin="0,10,0,10" Content="Apartment Plan" HorizontalAlignment="Stretch" Click="click"/> + <Button Margin="0,10,0,10" Content="Personal Info" HorizontalAlignment="Stretch" Click="GotoPernalInfoPage"></Button> + <Button Margin="0,10,0,10" Content="Residents" HorizontalAlignment="Stretch"></Button> + <Button Margin="0,10,0,10" Content="Apartment Changes" HorizontalAlignment="Stretch"></Button> + <Button Margin="0,10,0,10" Content="Apartment Defects" HorizontalAlignment="Stretch"></Button> + </StackPanel> + </StackPanel> + </Grid> +</Page> diff --git a/ApartmentManager/ApartmentManager/View/ApartmentPage.xaml.cs b/ApartmentManager/ApartmentManager/View/ApartmentPage.xaml.cs new file mode 100644 index 0000000..f977517 --- /dev/null +++ b/ApartmentManager/ApartmentManager/View/ApartmentPage.xaml.cs @@ -0,0 +1,40 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238 + +namespace ApartmentManager.View +{ + /// <summary> + /// An empty page that can be used on its own or navigated to within a Frame. + /// </summary> + public sealed partial class ApartmentPage : Page + { + public ApartmentPage() + { + this.InitializeComponent(); + } + + private void click(object sender, RoutedEventArgs e) + { + + } + + private void GotoPernalInfoPage(object sender, RoutedEventArgs e) + { + Frame.Navigate(typeof(PersonalInfoPage)); + } + } +} diff --git a/ApartmentManager/ApartmentManager/View/ApartmentPlanPage.xaml b/ApartmentManager/ApartmentManager/View/ApartmentPlanPage.xaml new file mode 100644 index 0000000..4f8b466 --- /dev/null +++ b/ApartmentManager/ApartmentManager/View/ApartmentPlanPage.xaml @@ -0,0 +1,22 @@ +<Page + x:Class="ApartmentManager.View.ApartmentPlanPage" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="using:ApartmentManager.View" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + mc:Ignorable="d"> + + <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> + <StackPanel Orientation="Horizontal" Margin="50" VerticalAlignment="Center" HorizontalAlignment="Center" > + <Button Background="{x:Null}" Margin="20,0,20,0" > + <SymbolIcon Symbol="Back" ></SymbolIcon> + </Button> + <Image Height="500" Width="1000" /> + <Button Background="{x:Null}" Margin="20,0,20,0" > + <SymbolIcon Symbol="Forward" ></SymbolIcon> + </Button> + </StackPanel> + </Grid> + +</Page> diff --git a/ApartmentManager/ApartmentManager/View/LoginPage.xaml b/ApartmentManager/ApartmentManager/View/LoginPage.xaml index a3b3111..80071d1 100644 --- a/ApartmentManager/ApartmentManager/View/LoginPage.xaml +++ b/ApartmentManager/ApartmentManager/View/LoginPage.xaml @@ -8,8 +8,12 @@ mc:Ignorable="d"> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> - <StackPanel> - <TextBox Text="weqwe"></TextBox> - </StackPanel> + <StackPanel Height="200" Width="300"> + <TextBlock Margin="0,10,0,10" Text="User Name"></TextBlock> + <TextBox ></TextBox> + <TextBlock Margin="0,10,0,10" Text="Password"></TextBlock> + <TextBox ></TextBox> + <Button Margin="0,10,0,10" Content="Log In" HorizontalAlignment="Stretch" Click="click"></Button> + </StackPanel> </Grid> </Page> diff --git a/ApartmentManager/ApartmentManager/View/LoginPage.xaml.cs b/ApartmentManager/ApartmentManager/View/LoginPage.xaml.cs index 246ec8e..6f3a86b 100644 --- a/ApartmentManager/ApartmentManager/View/LoginPage.xaml.cs +++ b/ApartmentManager/ApartmentManager/View/LoginPage.xaml.cs @@ -26,5 +26,35 @@ namespace ApartmentManager.View { this.InitializeComponent(); } + + private void click(object sender, RoutedEventArgs e) + { + AppShell appShell = Window.Current.Content as AppShell; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (appShell == null) + { + // Create a AppShell to act as the navigation context and navigate to the first page + appShell = new AppShell(); + + // Set the default language + appShell.Language = Windows.Globalization.ApplicationLanguages.Languages[0]; + + } + + // Place our app shell in the current Window + Window.Current.Content = appShell; + + if (appShell.AppFrame.Content == null) + { + // When the navigation stack isn't restored, navigate to the first page + // suppressing the initial entrance animation. + appShell.AppFrame.Navigate(typeof(ApartmentPage)); + } + + // Ensure the current window is active + Window.Current.Activate(); + } } } diff --git a/ApartmentManager/ApartmentManager/View/PersonalInfoPage.xaml b/ApartmentManager/ApartmentManager/View/PersonalInfoPage.xaml new file mode 100644 index 0000000..5e84fcf --- /dev/null +++ b/ApartmentManager/ApartmentManager/View/PersonalInfoPage.xaml @@ -0,0 +1,27 @@ +<Page + x:Class="ApartmentManager.View.PersonalInfoPage" + xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" + xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" + xmlns:local="using:ApartmentManager.View" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + mc:Ignorable="d"> + + <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> + <StackPanel Margin="50"> + <StackPanel Width="400"> + <TextBlock Margin="0,10,0,10" Text="Name"></TextBlock> + <TextBox ></TextBox> + <TextBlock Margin="0,10,0,10" Text="Last Name"></TextBlock> + <TextBox ></TextBox> + <TextBlock Margin="0,10,0,10" Text="Birthdate"></TextBlock> + <DatePicker HorizontalAlignment="Stretch"></DatePicker> + <TextBlock Margin="0,10,0,10" Text="Email Address"></TextBlock> + <TextBox ></TextBox> + <TextBlock Margin="0,10,0,10" Text="Phone Number"></TextBlock> + <TextBox ></TextBox> + <Button Margin="0,10,0,10" Content="Update" HorizontalAlignment="Stretch"></Button> + </StackPanel> + </StackPanel> + </Grid> +</Page> diff --git a/ApartmentManager/ApartmentManager/View/PersonalInfoPage.xaml.cs b/ApartmentManager/ApartmentManager/View/PersonalInfoPage.xaml.cs new file mode 100644 index 0000000..984e8af --- /dev/null +++ b/ApartmentManager/ApartmentManager/View/PersonalInfoPage.xaml.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices.WindowsRuntime; +using Windows.Foundation; +using Windows.Foundation.Collections; +using Windows.UI.Xaml; +using Windows.UI.Xaml.Controls; +using Windows.UI.Xaml.Controls.Primitives; +using Windows.UI.Xaml.Data; +using Windows.UI.Xaml.Input; +using Windows.UI.Xaml.Media; +using Windows.UI.Xaml.Navigation; + +// The Blank Page item template is documented at https://go.microsoft.com/fwlink/?LinkId=234238 + +namespace ApartmentManager.View +{ + /// <summary> + /// An empty page that can be used on its own or navigated to within a Frame. + /// </summary> + public sealed partial class PersonalInfoPage : Page + { + public PersonalInfoPage() + { + this.InitializeComponent(); + } + } +} diff --git a/HousingDatabase.ldf b/HousingDatabase.ldf Binary files differindex 3a1f536..12dcf09 100644 --- a/HousingDatabase.ldf +++ b/HousingDatabase.ldf diff --git a/HousingDatabase.mdf b/HousingDatabase.mdf Binary files differindex 991099d..25f4551 100644 --- a/HousingDatabase.mdf +++ b/HousingDatabase.mdf |