diff --git a/PointerButton/PointerButton/App.xaml b/PointerButton/PointerButton/App.xaml index 0c8a8da..4cc3c77 100644 --- a/PointerButton/PointerButton/App.xaml +++ b/PointerButton/PointerButton/App.xaml @@ -3,6 +3,6 @@ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:PointerButton" - RequestedTheme="Light"> + RequestedTheme="Dark"> diff --git a/PointerButton/PointerButton/App.xaml.cs b/PointerButton/PointerButton/App.xaml.cs index a89a2cc..91c1c10 100644 --- a/PointerButton/PointerButton/App.xaml.cs +++ b/PointerButton/PointerButton/App.xaml.cs @@ -1,105 +1,120 @@ using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Runtime.InteropServices.WindowsRuntime; using Windows.ApplicationModel; using Windows.ApplicationModel.Activation; +using Windows.ApplicationModel.Core; using Windows.Foundation; -using Windows.Foundation.Collections; +using Windows.UI; +using Windows.UI.ViewManagement; 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; namespace PointerButton { + /// + /// Provides application-specific behavior to supplement the default Application class. + /// + sealed partial class App : Application + { /// - /// Provides application-specific behavior to supplement the default Application class. + /// Initializes the singleton application object. This is the first line of authored code + /// executed, and as such is the logical equivalent of main() or WinMain(). /// - sealed partial class App : Application + public App() { - /// - /// Initializes the singleton application object. This is the first line of authored code - /// executed, and as such is the logical equivalent of main() or WinMain(). - /// - public App() - { - this.InitializeComponent(); - this.Suspending += OnSuspending; - } - - /// - /// Invoked when the application is launched normally by the end user. Other entry points - /// will be used such as when the application is launched to open a specific file. - /// - /// Details about the launch request and process. - protected override void OnLaunched(LaunchActivatedEventArgs e) - { - -#if DEBUG - if (System.Diagnostics.Debugger.IsAttached) - { - this.DebugSettings.EnableFrameRateCounter = true; - } -#endif - - Frame rootFrame = Window.Current.Content as Frame; - - // Do not repeat app initialization when the Window already has content, - // just ensure that the window is active - if (rootFrame == null) - { - // Create a Frame to act as the navigation context and navigate to the first page - rootFrame = new Frame(); - - rootFrame.NavigationFailed += OnNavigationFailed; - - if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) - { - //TODO: Load state from previously suspended application - } - - // Place the frame in the current Window - Window.Current.Content = rootFrame; - } - - if (rootFrame.Content == null) - { - // When the navigation stack isn't restored navigate to the first page, - // configuring the new page by passing required information as a navigation - // parameter - rootFrame.Navigate(typeof(MainPage), e.Arguments); - } - // Ensure the current window is active - Window.Current.Activate(); - } - - /// - /// Invoked when Navigation to a certain page fails - /// - /// The Frame which failed navigation - /// Details about the navigation failure - void OnNavigationFailed(object sender, NavigationFailedEventArgs e) - { - throw new Exception("Failed to load Page " + e.SourcePageType.FullName); - } - - /// - /// Invoked when application execution is being suspended. Application state is saved - /// without knowing whether the application will be terminated or resumed with the contents - /// of memory still intact. - /// - /// The source of the suspend request. - /// Details about the suspend request. - private void OnSuspending(object sender, SuspendingEventArgs e) - { - var deferral = e.SuspendingOperation.GetDeferral(); - //TODO: Save application state and stop any background activity - deferral.Complete(); - } + this.InitializeComponent(); + this.Suspending += OnSuspending; } + + /// + /// Invoked when the application is launched normally by the end user. Other entry points + /// will be used such as when the application is launched to open a specific file. + /// + /// Details about the launch request and process. + protected override void OnLaunched(LaunchActivatedEventArgs e) + { + Frame rootFrame = Window.Current.Content as Frame; + + // Do not repeat app initialization when the Window already has content, + // just ensure that the window is active + if (rootFrame == null) + { + // Create a Frame to act as the navigation context and navigate to the first page + rootFrame = new Frame(); + + rootFrame.NavigationFailed += OnNavigationFailed; + + if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) + { + //TODO: Load state from previously suspended application + } + + // Place the frame in the current Window + Window.Current.Content = rootFrame; + } + + if (rootFrame.Content == null) + { + // When the navigation stack isn't restored navigate to the first page, + // configuring the new page by passing required information as a navigation + // parameter + rootFrame.Navigate(typeof(MainPage), e.Arguments); + } + + // assigns colors to the title bar + SetupTitleBar(); + + // Ensure the current window is active + Window.Current.Activate(); + } + + /// + /// Invoked when Navigation to a certain page fails + /// + /// The Frame which failed navigation + /// Details about the navigation failure + void OnNavigationFailed(object sender, NavigationFailedEventArgs e) + { + throw new Exception("Failed to load Page " + e.SourcePageType.FullName); + } + + /// + /// Invoked when application execution is being suspended. Application state is saved + /// without knowing whether the application will be terminated or resumed with the contents + /// of memory still intact. + /// + /// The source of the suspend request. + /// Details about the suspend request. + private void OnSuspending(object sender, SuspendingEventArgs e) + { + var deferral = e.SuspendingOperation.GetDeferral(); + //TODO: Save application state and stop any background activity + deferral.Complete(); + } + + + private void SetupTitleBar() + { + ApplicationView view = ApplicationView.GetForCurrentView(); + Color systemButtonColor = Color.FromArgb(255, 137, 144, 153); + + // set window size + title bar colors + view.SetPreferredMinSize(new Size(320, 320)); + view.TitleBar.BackgroundColor = Colors.Transparent; + view.TitleBar.ForegroundColor = Colors.Transparent; + view.TitleBar.ButtonForegroundColor = systemButtonColor; + view.TitleBar.ButtonHoverForegroundColor = systemButtonColor; + view.TitleBar.ButtonPressedForegroundColor = systemButtonColor; + view.TitleBar.ButtonInactiveForegroundColor = systemButtonColor; + view.TitleBar.InactiveForegroundColor = Colors.Transparent; + view.TitleBar.ButtonBackgroundColor = Colors.Transparent; + view.TitleBar.ButtonHoverBackgroundColor = Colors.Transparent; + view.TitleBar.ButtonInactiveBackgroundColor = Colors.Transparent; + view.TitleBar.ButtonPressedBackgroundColor = Colors.Transparent; + view.TitleBar.InactiveBackgroundColor = Colors.Transparent; + + // change title bar to be not part of the canvas + CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true; + } + } } diff --git a/PointerButton/PointerButton/MainPage.xaml b/PointerButton/PointerButton/MainPage.xaml index 6422522..c69c1d1 100644 --- a/PointerButton/PointerButton/MainPage.xaml +++ b/PointerButton/PointerButton/MainPage.xaml @@ -4,7 +4,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:PointerButton"> - +