Added new SplitView Sample
|
@ -0,0 +1,48 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.22609.0
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SplitView", "SplitView\SplitView.csproj", "{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|ARM = Debug|ARM
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|ARM = Release|ARM
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|ARM.ActiveCfg = Debug|ARM
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|ARM.Build.0 = Debug|ARM
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|ARM.Deploy.0 = Debug|ARM
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|x64.Build.0 = Debug|x64
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|x64.Deploy.0 = Debug|x64
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|x86.Build.0 = Debug|x86
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Debug|x86.Deploy.0 = Debug|x86
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|ARM.ActiveCfg = Release|ARM
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|ARM.Build.0 = Release|ARM
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|ARM.Deploy.0 = Release|ARM
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|x64.ActiveCfg = Release|x64
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|x64.Build.0 = Release|x64
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|x64.Deploy.0 = Release|x64
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|x86.ActiveCfg = Release|x86
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|x86.Build.0 = Release|x86
|
||||
{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}.Release|x86.Deploy.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
|
@ -0,0 +1,26 @@
|
|||
<Application
|
||||
x:Class="SplitView.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView"
|
||||
xmlns:locator="using:SplitView.ViewModels.Base">
|
||||
<Application.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="/Styles/Colors.xaml" />
|
||||
<ResourceDictionary Source="/Styles/Converters.xaml" />
|
||||
<ResourceDictionary Source="/Styles/FlipViewStyles.xaml" />
|
||||
<ResourceDictionary Source="/Styles/Fonts.xaml" />
|
||||
<ResourceDictionary Source="/Styles/ListViewStyles.xaml" />
|
||||
<ResourceDictionary Source="/Styles/RadioButtonStyles.xaml" />
|
||||
<ResourceDictionary Source="/Styles/TextStyles.xaml" />
|
||||
<ResourceDictionary Source="/Styles/ToggleButtonStyles.xaml" />
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
|
||||
<!-- ViewModelLocator -->
|
||||
<locator:ViewModelLocator x:Key="Locator" />
|
||||
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
|
||||
</Application>
|
|
@ -0,0 +1,104 @@
|
|||
using System;
|
||||
using Windows.ApplicationModel;
|
||||
using Windows.ApplicationModel.Activation;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
using Microsoft.ApplicationInsights;
|
||||
using SplitView.Views;
|
||||
|
||||
namespace SplitView
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides application-specific behavior to supplement the default Application class.
|
||||
/// </summary>
|
||||
sealed partial class App : Application
|
||||
{
|
||||
/// <summary>
|
||||
/// Allows tracking page views, exceptions and other telemetry through the Microsoft Application Insights service.
|
||||
/// </summary>
|
||||
public TelemetryClient TelemetryClient = new TelemetryClient();
|
||||
|
||||
/// <summary>
|
||||
/// 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().
|
||||
/// </summary>
|
||||
public App()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
this.Suspending += OnSuspending;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
/// <param name="e">Details about the launch request and process.</param>
|
||||
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();
|
||||
// Set the default language
|
||||
rootFrame.Language = Windows.Globalization.ApplicationLanguages.Languages[0];
|
||||
|
||||
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(MainView), e.Arguments);
|
||||
}
|
||||
// Ensure the current window is active
|
||||
Window.Current.Activate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invoked when Navigation to a certain page fails
|
||||
/// </summary>
|
||||
/// <param name="sender">The Frame which failed navigation</param>
|
||||
/// <param name="e">Details about the navigation failure</param>
|
||||
void OnNavigationFailed(object sender, NavigationFailedEventArgs e)
|
||||
{
|
||||
throw new Exception("Failed to load Page " + e.SourcePageType.FullName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
/// <param name="sender">The source of the suspend request.</param>
|
||||
/// <param name="e">Details about the suspend request.</param>
|
||||
private void OnSuspending(object sender, SuspendingEventArgs e)
|
||||
{
|
||||
var deferral = e.SuspendingOperation.GetDeferral();
|
||||
//TODO: Save application state and stop any background activity
|
||||
deferral.Complete();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings" schemaVersion="2014-05-30">
|
||||
<!--
|
||||
Learn more about Application Insights configuration with ApplicationInsights.config here:
|
||||
http://go.microsoft.com/fwlink/?LinkID=513840
|
||||
-->
|
||||
<TelemetryModules>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.RuntimeTelemetry.RemoteDependencyModule, Microsoft.ApplicationInsights.Extensibility.RuntimeTelemetry"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.Windows.PageViewTelemetryModule, Microsoft.ApplicationInsights.Extensibility.Windows"/>
|
||||
</TelemetryModules>
|
||||
<ContextInitializers>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.ComponentContextInitializer, Microsoft.ApplicationInsights"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.DeviceContextInitializer, Microsoft.ApplicationInsights"/>
|
||||
</ContextInitializers>
|
||||
<TelemetryInitializers>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.StoreAppSessionInitializer, Microsoft.ApplicationInsights"/>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.StoreAppUserInitializer, Microsoft.ApplicationInsights"/>
|
||||
</TelemetryInitializers>
|
||||
</ApplicationInsights>
|
После Ширина: | Высота: | Размер: 78 KiB |
После Ширина: | Высота: | Размер: 320 KiB |
После Ширина: | Высота: | Размер: 406 KiB |
После Ширина: | Высота: | Размер: 350 KiB |
После Ширина: | Высота: | Размер: 499 KiB |
После Ширина: | Высота: | Размер: 272 KiB |
После Ширина: | Высота: | Размер: 340 KiB |
После Ширина: | Высота: | Размер: 437 KiB |
После Ширина: | Высота: | Размер: 281 KiB |
После Ширина: | Высота: | Размер: 801 B |
После Ширина: | Высота: | Размер: 329 B |
После Ширина: | Высота: | Размер: 2.1 KiB |
После Ширина: | Высота: | Размер: 429 B |
После Ширина: | Высота: | Размер: 2.1 KiB |
|
@ -0,0 +1,40 @@
|
|||
namespace SplitView.Behaviors
|
||||
{
|
||||
using System.Windows.Input;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
|
||||
public static class ItemClickCommandBehavior
|
||||
{
|
||||
public static readonly DependencyProperty CommandProperty =
|
||||
DependencyProperty.RegisterAttached("Command", typeof(ICommand),
|
||||
typeof(ItemClickCommandBehavior), new PropertyMetadata(null, OnCommandPropertyChanged));
|
||||
|
||||
public static void SetCommand(DependencyObject d, ICommand value)
|
||||
{
|
||||
d.SetValue(CommandProperty, value);
|
||||
}
|
||||
|
||||
public static ICommand GetCommand(DependencyObject d)
|
||||
{
|
||||
return (ICommand)d.GetValue(CommandProperty);
|
||||
}
|
||||
|
||||
private static void OnCommandPropertyChanged(DependencyObject d,
|
||||
DependencyPropertyChangedEventArgs e)
|
||||
{
|
||||
var control = d as ListViewBase;
|
||||
if (control != null)
|
||||
control.ItemClick += OnItemClick;
|
||||
}
|
||||
|
||||
private static void OnItemClick(object sender, ItemClickEventArgs e)
|
||||
{
|
||||
var control = sender as ListViewBase;
|
||||
var command = GetCommand(control);
|
||||
|
||||
if (command != null && command.CanExecute(e.ClickedItem))
|
||||
command.Execute(e.ClickedItem);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
namespace SplitView.Converters
|
||||
{
|
||||
using System;
|
||||
using Windows.UI;
|
||||
using Windows.UI.Xaml.Data;
|
||||
using Windows.UI.Xaml.Media;
|
||||
|
||||
public class AlternatingIndexConverter : IValueConverter
|
||||
{
|
||||
private static int _index;
|
||||
|
||||
public object Convert(object value, Type targetType, object parameter, string language)
|
||||
{
|
||||
return (_index++ % 2 == 0 ? new SolidColorBrush(Colors.Transparent) : new SolidColorBrush(Colors.Gray));
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, string language)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
namespace SplitView.Converters
|
||||
{
|
||||
using System;
|
||||
using Windows.UI.Xaml.Data;
|
||||
|
||||
class ToUpperConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, string language)
|
||||
{
|
||||
return value.ToString().ToUpperInvariant();
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, string language)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
|
||||
namespace SplitView.Models
|
||||
{
|
||||
public class Constructor
|
||||
{
|
||||
public string ConstructorId { get; set; }
|
||||
public string Url { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string Nationality { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
namespace SplitView.Models
|
||||
{
|
||||
public class Driver
|
||||
{
|
||||
public string DriverId { get; set; }
|
||||
public string Url { get; set; }
|
||||
public string CompleteName { get { return string.Format("{0} {1}", GivenName, FamilyName); } }
|
||||
public string GivenName { get; set; }
|
||||
public string FamilyName { get; set; }
|
||||
public string DateOfBirth { get; set; }
|
||||
public string Nationality { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
namespace SplitView.Models
|
||||
{
|
||||
using System;
|
||||
|
||||
public class MenuItem
|
||||
{
|
||||
public string Icon { get; set; }
|
||||
public string Title { get; set; }
|
||||
public Type View { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
namespace SplitView.Models
|
||||
{
|
||||
public class ConstructorStanding
|
||||
{
|
||||
public string Position { get; set; }
|
||||
public string PositionText { get; set; }
|
||||
public string Points { get; set; }
|
||||
public string Wins { get; set; }
|
||||
public Constructor Constructor { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace SplitView.Models
|
||||
{
|
||||
public class DriverStanding
|
||||
{
|
||||
public string Position { get; set; }
|
||||
public string PositionText { get; set; }
|
||||
public string Points { get; set; }
|
||||
public string Wins { get; set; }
|
||||
public Driver Driver { get; set; }
|
||||
public List<Constructor> Constructors { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace SplitView.Models
|
||||
{
|
||||
public class StandingList
|
||||
{
|
||||
public string Season { get; set; }
|
||||
public string Round { get; set; }
|
||||
public List<DriverStanding> DriverStandings { get; set; }
|
||||
public List<ConstructorStanding> ConstructorStandings { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
|
||||
namespace SplitView.Models
|
||||
{
|
||||
public class StandingMRData
|
||||
{
|
||||
public string Xmlns { get; set; }
|
||||
public string Series { get; set; }
|
||||
public string Url { get; set; }
|
||||
public string Limit { get; set; }
|
||||
public string Offset { get; set; }
|
||||
public string Total { get; set; }
|
||||
public StandingTable StandingsTable { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
namespace SplitView.Models
|
||||
{
|
||||
public class StandingRootObject
|
||||
{
|
||||
public StandingMRData MRData { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
using System.Collections.Generic;
|
||||
|
||||
namespace SplitView.Models
|
||||
{
|
||||
public class StandingTable
|
||||
{
|
||||
public string Season { get; set; }
|
||||
public List<StandingList> StandingsLists { get; set; }
|
||||
}
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<Package
|
||||
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||
IgnorableNamespaces="uap mp">
|
||||
|
||||
<Identity
|
||||
Name="0292bb5c-575d-452b-9727-37959a650d0f"
|
||||
Publisher="CN=Javier"
|
||||
Version="1.0.0.0" />
|
||||
|
||||
<mp:PhoneIdentity PhoneProductId="0292bb5c-575d-452b-9727-37959a650d0f" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
|
||||
|
||||
<Properties>
|
||||
<DisplayName>SplitView</DisplayName>
|
||||
<PublisherDisplayName>Javier</PublisherDisplayName>
|
||||
<Logo>Assets\StoreLogo.png</Logo>
|
||||
</Properties>
|
||||
|
||||
<Dependencies>
|
||||
<TargetPlatform Name="Windows.Universal" MinVersion="10.0.10030.0" MaxVersionTested="10.0.10030.0" />
|
||||
</Dependencies>
|
||||
|
||||
<Resources>
|
||||
<Resource Language="x-generate"/>
|
||||
</Resources>
|
||||
|
||||
<Applications>
|
||||
<Application Id="App"
|
||||
Executable="$targetnametoken$.exe"
|
||||
EntryPoint="SplitView.App">
|
||||
<uap:VisualElements
|
||||
DisplayName="SplitView"
|
||||
Square150x150Logo="Assets\Logo.png"
|
||||
Square44x44Logo="Assets\SmallLogo.png"
|
||||
Description="SplitView"
|
||||
ForegroundText="light"
|
||||
BackgroundColor="#464646">
|
||||
<uap:SplashScreen Image="Assets\SplashScreen.png" />
|
||||
</uap:VisualElements>
|
||||
</Application>
|
||||
</Applications>
|
||||
|
||||
<Capabilities>
|
||||
<Capability Name="internetClient" />
|
||||
</Capabilities>
|
||||
</Package>
|
|
@ -0,0 +1,29 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("SplitView")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("SplitView")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2015")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
[assembly: ComVisible(false)]
|
|
@ -0,0 +1,36 @@
|
|||
<!--
|
||||
This file contains Runtime Directives used by .NET Native. The defaults here are suitable for most
|
||||
developers. However, you can modify these parameters to modify the behavior of the .NET Native
|
||||
optimizer.
|
||||
|
||||
Runtime Directives are documented at http://go.microsoft.com/fwlink/?LinkID=391919
|
||||
|
||||
To fully enable reflection for App1.MyClass and all of its public/private members
|
||||
<Type Name="App1.MyClass" Dynamic="Required All"/>
|
||||
|
||||
To enable dynamic creation of the specific instantiation of AppClass<T> over System.Int32
|
||||
<TypeInstantiation Name="App1.AppClass" Arguments="System.Int32" Activate="Required Public" />
|
||||
|
||||
Using the Namespace directive to apply reflection policy to all the types in a particular namespace
|
||||
<Namespace Name="DataClasses.ViewModels" Seralize="All" />
|
||||
-->
|
||||
|
||||
<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
|
||||
<Application>
|
||||
<!--
|
||||
An Assembly element with Name="*Application*" applies to all assemblies in
|
||||
the application package. The asterisks are not wildcards.
|
||||
-->
|
||||
<Assembly Name="*Application*" Dynamic="Required All" />
|
||||
|
||||
|
||||
<!-- Add your application specific runtime directives here. -->
|
||||
|
||||
|
||||
</Application>
|
||||
|
||||
<!-- Enable dynamic access to types that Application Insights requires -->
|
||||
<Library Name="*Microsoft.ApplicationInsights*">
|
||||
<Type Name="Windows.ApplicationModel.Core.CoreApplication" Dynamic="Required Public" />
|
||||
</Library>
|
||||
</Directives>
|
|
@ -0,0 +1,8 @@
|
|||
namespace SplitView.Services.Package
|
||||
{
|
||||
public interface IPackageService
|
||||
{
|
||||
string GetAppName();
|
||||
string GetVersion();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
namespace SplitView.Services.Package
|
||||
{
|
||||
public class PackageService : IPackageService
|
||||
{
|
||||
public string GetAppName()
|
||||
{
|
||||
var package = Windows.ApplicationModel.Package.Current;
|
||||
return package.DisplayName;
|
||||
}
|
||||
|
||||
public string GetVersion()
|
||||
{
|
||||
var package = Windows.ApplicationModel.Package.Current;
|
||||
var version = package.Id.Version;
|
||||
|
||||
return string.Format("{0}.{1}.{2}.{3}",
|
||||
version.Major, version.Minor, version.Build, version.Revision);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
using SplitView.Models;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SplitView.Services.Standings
|
||||
{
|
||||
public interface IStandingService
|
||||
{
|
||||
Task<StandingTable> GetSeasonConstructorStandingsCollectionAsync(string season = "current");
|
||||
|
||||
Task<StandingTable> GetSeasonDriverStandingsCollectionAsync(string season = "current");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
using SplitView.Models;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Net.Http;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace SplitView.Services.Standings
|
||||
{
|
||||
public class StandingService : IStandingService
|
||||
{
|
||||
public async Task<StandingTable> GetSeasonConstructorStandingsCollectionAsync(string season = "current")
|
||||
{
|
||||
var url = string.Format("http://ergast.com/api/f1/{0}/constructorStandings.json", season);
|
||||
var client = new HttpClient();
|
||||
var stringResult = await client.GetStringAsync(new Uri(url));
|
||||
var data = JsonConvert.DeserializeObject<StandingRootObject>(stringResult);
|
||||
|
||||
return data.MRData.StandingsTable;
|
||||
}
|
||||
|
||||
public async Task<StandingTable> GetSeasonDriverStandingsCollectionAsync(string season = "current")
|
||||
{
|
||||
var url = string.Format("http://ergast.com/api/f1/{0}/driverStandings.json", season);
|
||||
var client = new HttpClient();
|
||||
var stringResult = await client.GetStringAsync(new Uri(url));
|
||||
var data = JsonConvert.DeserializeObject<StandingRootObject>(stringResult);
|
||||
|
||||
return data.MRData.StandingsTable;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,285 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}</ProjectGuid>
|
||||
<OutputType>AppContainerExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>SplitView</RootNamespace>
|
||||
<AssemblyName>SplitView</AssemblyName>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
||||
<TargetPlatformVersion>10.0.10030.0</TargetPlatformVersion>
|
||||
<TargetPlatformMinVersion>10.0.10030.0</TargetPlatformMinVersion>
|
||||
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion>
|
||||
<EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
<PackageCertificateKeyFile>SplitView_TemporaryKey.pfx</PackageCertificateKeyFile>
|
||||
<NuGetPackageImportStamp>d6242cba</NuGetPackageImportStamp>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\ARM\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|ARM'">
|
||||
<OutputPath>bin\ARM\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x64\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
|
||||
<OutputPath>bin\x64\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
|
||||
<OutputPath>bin\x86\Release\</OutputPath>
|
||||
<DefineConstants>TRACE;NETFX_CORE;WINDOWS_UAP</DefineConstants>
|
||||
<Optimize>true</Optimize>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<Prefer32Bit>true</Prefer32Bit>
|
||||
<UseDotNetNativeToolchain>true</UseDotNetNativeToolchain>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Behaviors\ItemClickCommandBehavior.cs" />
|
||||
<Compile Include="Converters\AlternatingIndexConverter.cs" />
|
||||
<Compile Include="Converters\ToUpperConverter.cs" />
|
||||
<Compile Include="Models\Constructor\Constructor.cs" />
|
||||
<Compile Include="Models\Driver\Driver.cs" />
|
||||
<Compile Include="Models\MenuItem.cs" />
|
||||
<Compile Include="Models\Standings\ConstructorStanding.cs" />
|
||||
<Compile Include="Models\Standings\DriverStanding.cs" />
|
||||
<Compile Include="Models\Standings\StandingList.cs" />
|
||||
<Compile Include="Models\Standings\StandingMRData.cs" />
|
||||
<Compile Include="Models\Standings\StandingRootObject.cs" />
|
||||
<Compile Include="Models\Standings\StandingTable.cs" />
|
||||
<Compile Include="Services\Package\IPackageService.cs" />
|
||||
<Compile Include="Services\Package\PackageService.cs" />
|
||||
<Compile Include="Services\Standings\IStandingService.cs" />
|
||||
<Compile Include="Services\Standings\StandingService.cs" />
|
||||
<Compile Include="ViewModels\AboutViewModel.cs" />
|
||||
<Compile Include="ViewModels\Base\DelegateCommand.cs" />
|
||||
<Compile Include="ViewModels\Base\DelegateCommandAsync.cs" />
|
||||
<Compile Include="ViewModels\Base\ViewModelBase.cs" />
|
||||
<Compile Include="ViewModels\Base\ViewModelLocator.cs" />
|
||||
<Compile Include="ViewModels\HomeViewModel.cs" />
|
||||
<Compile Include="ViewModels\MainViewModel.cs" />
|
||||
<Compile Include="ViewModels\StandingsViewModel.cs" />
|
||||
<Compile Include="Views\StandingsView.xaml.cs">
|
||||
<DependentUpon>StandingsView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\HomeView.xaml.cs">
|
||||
<DependentUpon>HomeView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\AboutView.xaml.cs">
|
||||
<DependentUpon>AboutView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\MainView.xaml.cs">
|
||||
<DependentUpon>MainView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Views\Base\PageBase.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AppxManifest Include="Package.appxmanifest">
|
||||
<SubType>Designer</SubType>
|
||||
</AppxManifest>
|
||||
<None Include="ApplicationInsights.config" />
|
||||
<None Include="packages.config" />
|
||||
<None Include="SplitView_TemporaryKey.pfx" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Assets\Banner.jpg" />
|
||||
<Content Include="Assets\Gallery\1.jpg" />
|
||||
<Content Include="Assets\Gallery\2.jpg" />
|
||||
<Content Include="Assets\Gallery\3.jpg" />
|
||||
<Content Include="Assets\Gallery\4.jpg" />
|
||||
<Content Include="Assets\Gallery\5.jpg" />
|
||||
<Content Include="Assets\Gallery\6.jpg" />
|
||||
<Content Include="Assets\Gallery\7.jpg" />
|
||||
<Content Include="Assets\Gallery\8.jpg" />
|
||||
<Content Include="Properties\Default.rd.xml" />
|
||||
<Content Include="Assets\Logo.scale-100.png" />
|
||||
<Content Include="Assets\SmallLogo.scale-100.png" />
|
||||
<Content Include="Assets\SplashScreen.scale-100.png" />
|
||||
<Content Include="Assets\StoreLogo.scale-100.png" />
|
||||
<Content Include="Assets\WideLogo.scale-100.png" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Include="App.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Page Include="Styles\Colors.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Styles\Converters.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Styles\FlipViewStyles.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Styles\Fonts.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Styles\ListViewStyles.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Styles\RadioButtonStyles.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Styles\TextStyles.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Styles\ToggleButtonStyles.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Views\StandingsView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Views\HomeView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Views\AboutView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Views\MainView.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="Microsoft.ApplicationInsights">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.0.13.0-build26067\lib\portable-win81+wpa81\Microsoft.ApplicationInsights.winmd</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.ApplicationInsights.Extensibility.RuntimeTelemetry">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.RuntimeTelemetry.0.13.0-build26067\lib\portable-win81+wpa81\Microsoft.ApplicationInsights.Extensibility.RuntimeTelemetry.winmd</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.ApplicationInsights.Extensibility.Windows">
|
||||
<HintPath>..\packages\Microsoft.ApplicationInsights.WindowsStore.0.13.0-build26067\lib\win81\Microsoft.ApplicationInsights.Extensibility.Windows.winmd</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Practices.ServiceLocation">
|
||||
<HintPath>..\packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Practices.Unity">
|
||||
<HintPath>..\packages\Unity.3.5.1405-prerelease\lib\win8\Microsoft.Practices.Unity.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Practices.Unity.RegistrationByConvention">
|
||||
<HintPath>..\packages\Unity.3.5.1405-prerelease\lib\win8\Microsoft.Practices.Unity.RegistrationByConvention.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Newtonsoft.Json">
|
||||
<HintPath>..\packages\Newtonsoft.Json.7.0.1-beta1\lib\portable-net40+sl5+wp80+win8+wpa81\Newtonsoft.Json.dll</HintPath>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
||||
<VisualStudioVersion>14.0</VisualStudioVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
|
||||
<Import Project="..\packages\Microsoft.Diagnostics.Tracing.EventSource.Redist.1.1.14-beta\build\portable-net45+win8+wpa81\Microsoft.Diagnostics.Tracing.EventSource.Redist.targets" Condition="Exists('..\packages\Microsoft.Diagnostics.Tracing.EventSource.Redist.1.1.14-beta\build\portable-net45+win8+wpa81\Microsoft.Diagnostics.Tracing.EventSource.Redist.targets')" />
|
||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||
<PropertyGroup>
|
||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||
</PropertyGroup>
|
||||
<Error Condition="!Exists('..\packages\Microsoft.Diagnostics.Tracing.EventSource.Redist.1.1.14-beta\build\portable-net45+win8+wpa81\Microsoft.Diagnostics.Tracing.EventSource.Redist.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Diagnostics.Tracing.EventSource.Redist.1.1.14-beta\build\portable-net45+win8+wpa81\Microsoft.Diagnostics.Tracing.EventSource.Redist.targets'))" />
|
||||
<Error Condition="!Exists('..\packages\Microsoft.ApplicationInsights.0.13.0-build26067\build\portable-win81+wpa81\Microsoft.ApplicationInsights.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.ApplicationInsights.0.13.0-build26067\build\portable-win81+wpa81\Microsoft.ApplicationInsights.targets'))" />
|
||||
</Target>
|
||||
<Import Project="..\packages\Microsoft.ApplicationInsights.0.13.0-build26067\build\portable-win81+wpa81\Microsoft.ApplicationInsights.targets" Condition="Exists('..\packages\Microsoft.ApplicationInsights.0.13.0-build26067\build\portable-win81+wpa81\Microsoft.ApplicationInsights.targets')" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||
<DeviceId>30F105C9-681E-420b-A277-7C086EAD8A4E</DeviceId>
|
||||
<UseEmulator>false</UseEmulator>
|
||||
</PropertyGroup>
|
||||
</Project>
|
|
@ -0,0 +1,21 @@
|
|||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView.Styles">
|
||||
|
||||
<Color x:Key="WhiteColor">#FFF</Color>
|
||||
<SolidColorBrush x:Key="WhiteBrush" Color="{StaticResource WhiteColor}"/>
|
||||
|
||||
<Color x:Key="BlackColor">#000</Color>
|
||||
<SolidColorBrush x:Key="BlackBrush" Color="{StaticResource BlackColor}"/>
|
||||
|
||||
<Color x:Key="BackGroundColor">#FAFFF8</Color>
|
||||
<SolidColorBrush x:Key="BackgroundBrush" Color="{StaticResource BackGroundColor}"/>
|
||||
|
||||
<Color x:Key="BackGroundPaneColor">#363537</Color>
|
||||
<SolidColorBrush x:Key="BackgroundPaneBrush" Color="{StaticResource BackGroundPaneColor}"/>
|
||||
|
||||
<Color x:Key="AccentColor">Blue</Color>
|
||||
<SolidColorBrush x:Key="AccentBrush" Color="{StaticResource AccentColor}"/>
|
||||
|
||||
</ResourceDictionary>
|
|
@ -0,0 +1,10 @@
|
|||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:converters="using:SplitView.Converters">
|
||||
|
||||
<!-- Converters -->
|
||||
<converters:AlternatingIndexConverter x:Key="AlternatingIndexConverter" />
|
||||
<converters:ToUpperConverter x:Key="ToUpperConverter" />
|
||||
|
||||
</ResourceDictionary>
|
|
@ -0,0 +1,15 @@
|
|||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView.Styles">
|
||||
|
||||
<DataTemplate x:Key="GalleryDataTemplate">
|
||||
<Grid
|
||||
Height="300">
|
||||
<Image
|
||||
Stretch="UniformToFill"
|
||||
Source="{Binding}" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
</ResourceDictionary>
|
|
@ -0,0 +1,12 @@
|
|||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<!-- Font Sizes -->
|
||||
<x:Double x:Key="FontSizeSmall">20</x:Double>
|
||||
<x:Double x:Key="FontSizeMedium">24</x:Double>
|
||||
<x:Double x:Key="FontSizeLarge">30</x:Double>
|
||||
<x:Double x:Key="FontSizeMoreLarge">36</x:Double>
|
||||
<x:Double x:Key="FontSizeExtraLarge">40</x:Double>
|
||||
|
||||
</ResourceDictionary>
|
|
@ -0,0 +1,75 @@
|
|||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView.Styles">
|
||||
|
||||
<DataTemplate x:Key="MenuItemDataTemplate">
|
||||
<Grid
|
||||
Width="250">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Border
|
||||
Grid.Column="0"
|
||||
Background="Transparent"
|
||||
Width="40"
|
||||
Height="40">
|
||||
<FontIcon
|
||||
FontFamily="Segoe MDL2 Assets"
|
||||
Foreground="White"
|
||||
Glyph="{Binding Icon}" />
|
||||
</Border>
|
||||
<TextBlock
|
||||
Grid.Column="1"
|
||||
Text="{Binding Title, Converter={StaticResource ToUpperConverter}}"
|
||||
Foreground="White"
|
||||
VerticalAlignment="Center"
|
||||
Margin="10, 0" />
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
<DataTemplate x:Key="DriverDataTemplate">
|
||||
<Grid
|
||||
Background="{Binding Converter={StaticResource AlternatingIndexConverter}}"
|
||||
Width="1920"
|
||||
Margin="0, 1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid>
|
||||
<Ellipse Height="50"
|
||||
Width="50"
|
||||
Fill="{StaticResource AccentBrush}" />
|
||||
<StackPanel
|
||||
Orientation="Horizontal"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center">
|
||||
<TextBlock
|
||||
Text="{Binding Position}"
|
||||
FontSize="28"
|
||||
Foreground="White" />
|
||||
<TextBlock
|
||||
Text="º"
|
||||
FontSize="24"
|
||||
Foreground="White" />
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<StackPanel Grid.Column="1" Margin="15, 0">
|
||||
<TextBlock Text="{Binding Driver.CompleteName}" FontSize="24" />
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Points}"
|
||||
Foreground="{StaticResource AccentBrush}" />
|
||||
<TextBlock Text=" Points" />
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="{Binding Wins}"
|
||||
Foreground="{StaticResource AccentBrush}" />
|
||||
<TextBlock Text=" Wins" />
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</DataTemplate>
|
||||
|
||||
</ResourceDictionary>
|
|
@ -0,0 +1,164 @@
|
|||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView.Styles">
|
||||
|
||||
<Color x:Key="SystemListAccentLowColor">#FF004780</Color>
|
||||
<Color x:Key="SystemListAccentMediumColor">#FF005FAB</Color>
|
||||
<Color x:Key="SystemListAccentHighColor">#FF006BC0</Color>
|
||||
|
||||
<SolidColorBrush x:Key="SplitViewBackgroundBrush" Color="{ThemeResource BaseMediumHighColor}" />
|
||||
<SolidColorBrush x:Key="SplitViewForegroundBrush" Color="{ThemeResource BaseHighColor}" />
|
||||
<SolidColorBrush x:Key="NavButtonPressedBackgroundBrush" Color="{ThemeResource SystemListMediumColor}" />
|
||||
<SolidColorBrush x:Key="NavButtonHoverBackgroundBrush" Color="{ThemeResource SystemListLowColor}" />
|
||||
<SolidColorBrush x:Key="NavButtonCheckedBackgroundBrush" Color="{ThemeResource SystemListAccentLowColor}" />
|
||||
<SolidColorBrush x:Key="NavButtonCheckedPressedBackgroundBrush" Color="{ThemeResource SystemListAccentMediumColor}" />
|
||||
<SolidColorBrush x:Key="NavButtonCheckedHoverBackgroundBrush" Color="{ThemeResource SystemListAccentHighColor}" />
|
||||
|
||||
|
||||
<Style TargetType="RadioButton" BasedOn="{StaticResource SplitViewRadioButtonStyle}" />
|
||||
|
||||
<Style TargetType="RadioButton" x:Key="SplitViewRadioButtonStyle">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="Foreground" Value="White" />
|
||||
<Setter Property="Padding" Value="1,4,0,0" />
|
||||
<Setter Property="HorizontalAlignment" Value="Stretch" />
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
<Setter Property="HorizontalContentAlignment" Value="Left" />
|
||||
<Setter Property="VerticalContentAlignment" Value="Center" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="RadioButton">
|
||||
<Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal" />
|
||||
<VisualState x:Name="PointerOver">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="HoverBackground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0">
|
||||
<DiscreteObjectKeyFrame.Value>
|
||||
<Visibility>Visible</Visibility>
|
||||
</DiscreteObjectKeyFrame.Value>
|
||||
</DiscreteObjectKeyFrame>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="CheckedHoverBackground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0">
|
||||
<DiscreteObjectKeyFrame.Value>
|
||||
<Visibility>Visible</Visibility>
|
||||
</DiscreteObjectKeyFrame.Value>
|
||||
</DiscreteObjectKeyFrame>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Pressed">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="PressedBackground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0">
|
||||
<DiscreteObjectKeyFrame.Value>
|
||||
<Visibility>Visible</Visibility>
|
||||
</DiscreteObjectKeyFrame.Value>
|
||||
</DiscreteObjectKeyFrame>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="CheckedPressedBackground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0">
|
||||
<DiscreteObjectKeyFrame.Value>
|
||||
<Visibility>Visible</Visibility>
|
||||
</DiscreteObjectKeyFrame.Value>
|
||||
</DiscreteObjectKeyFrame>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Disabled">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="NixonGlyph" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource RadioButtonContentDisabledForegroundThemeBrush}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter" Storyboard.TargetProperty="Foreground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource RadioButtonContentDisabledForegroundThemeBrush}" />
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
<VisualStateGroup x:Name="CheckStates">
|
||||
<VisualState x:Name="Checked">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="CheckedBackground">
|
||||
<DiscreteObjectKeyFrame KeyTime="0">
|
||||
<DiscreteObjectKeyFrame.Value>
|
||||
<Visibility>Visible</Visibility>
|
||||
</DiscreteObjectKeyFrame.Value>
|
||||
</DiscreteObjectKeyFrame>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Unchecked" />
|
||||
<VisualState x:Name="Indeterminate" />
|
||||
</VisualStateGroup>
|
||||
<VisualStateGroup x:Name="FocusStates">
|
||||
<VisualState x:Name="Focused">
|
||||
<Storyboard>
|
||||
<DoubleAnimation Duration="0" Storyboard.TargetName="FocusVisualWhite" Storyboard.TargetProperty="Opacity" To="1" />
|
||||
<DoubleAnimation Duration="0" Storyboard.TargetName="FocusVisualBlack" Storyboard.TargetProperty="Opacity" To="1" />
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Unfocused" />
|
||||
<VisualState x:Name="PointerFocused" />
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<Grid>
|
||||
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="48" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="48" />
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="20" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<Grid.Resources>
|
||||
<Style TargetType="Rectangle" x:Name="FocusVisual">
|
||||
<Setter Property="Opacity" Value="0" />
|
||||
<Setter Property="StrokeDashArray" Value="1,1" />
|
||||
<Setter Property="StrokeEndLineCap" Value="Square" />
|
||||
</Style>
|
||||
</Grid.Resources>
|
||||
|
||||
<!-- background -->
|
||||
|
||||
<Grid x:Name="NotCheckedBackground" Grid.ColumnSpan="4">
|
||||
<Rectangle x:Name="PressedBackground" Visibility="Collapsed" Fill="{StaticResource NavButtonPressedBackgroundBrush}"/>
|
||||
<Rectangle x:Name="HoverBackground" Visibility="Collapsed" Fill="{StaticResource NavButtonHoverBackgroundBrush}"/>
|
||||
</Grid>
|
||||
<Grid x:Name="CheckedBackground" Grid.ColumnSpan="4" Visibility="Collapsed" Background="{StaticResource NavButtonCheckedBackgroundBrush}">
|
||||
<Rectangle x:Name="CheckedPressedBackground" Visibility="Collapsed" Fill="{StaticResource NavButtonCheckedPressedBackgroundBrush}"/>
|
||||
<Rectangle x:Name="CheckedHoverBackground" Visibility="Collapsed" Fill="{StaticResource NavButtonCheckedHoverBackgroundBrush}"/>
|
||||
</Grid>
|
||||
|
||||
<!-- focus -->
|
||||
<Rectangle x:Name="FocusVisualWhite" Stroke="{ThemeResource FocusVisualWhiteStrokeThemeBrush}" StrokeDashOffset="1.5" Style="{StaticResource FocusVisual}" />
|
||||
<Rectangle x:Name="FocusVisualBlack" Stroke="{ThemeResource FocusVisualBlackStrokeThemeBrush}" StrokeDashOffset="0.5" Style="{StaticResource FocusVisual}" />
|
||||
|
||||
<!-- glyph -->
|
||||
<ContentPresenter x:Name="NixonGlyph" Content="{TemplateBinding Tag}" />
|
||||
|
||||
<!-- text -->
|
||||
<ContentPresenter x:Name="ContentPresenter"
|
||||
Grid.Column="1"
|
||||
Margin="{TemplateBinding Padding}"
|
||||
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
|
||||
AutomationProperties.AccessibilityView="Raw"
|
||||
Content="{TemplateBinding Content}"
|
||||
ContentTemplate="{TemplateBinding ContentTemplate}"
|
||||
ContentTransitions="{TemplateBinding ContentTransitions}" />
|
||||
</Grid>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
|
@ -0,0 +1,12 @@
|
|||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView.Styles">
|
||||
|
||||
<Style x:Key="HeaderStyle" TargetType="TextBlock">
|
||||
<Setter Property="Foreground" Value="Black" />
|
||||
<Setter Property="FontWeight" Value="SemiBold" />
|
||||
<Setter Property="FontSize" Value="28" />
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
|
@ -0,0 +1,108 @@
|
|||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView.Styles">
|
||||
|
||||
<Style x:Key="SymbolButton" TargetType="ToggleButton">
|
||||
<Setter Property="Background" Value="{ThemeResource ToggleButtonBackgroundThemeBrush}"/>
|
||||
<Setter Property="Foreground" Value="{ThemeResource ToggleButtonForegroundThemeBrush}"/>
|
||||
<Setter Property="BorderBrush" Value="{ThemeResource ToggleButtonBorderThemeBrush}"/>
|
||||
<Setter Property="BorderThickness" Value="{ThemeResource ToggleButtonBorderThemeThickness}"/>
|
||||
<Setter Property="Padding" Value="12,4,12,5"/>
|
||||
<Setter Property="HorizontalAlignment" Value="Left"/>
|
||||
<Setter Property="VerticalAlignment" Value="Center"/>
|
||||
<Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="ToggleButton">
|
||||
<Grid>
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup x:Name="CommonStates">
|
||||
<VisualState x:Name="Normal"/>
|
||||
<VisualState x:Name="PointerOver">
|
||||
<Storyboard>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Pressed">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="Green"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Disabled">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ToggleButtonDisabledForegroundThemeBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Checked">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="Green"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="CheckedPointerOver">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="Green"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="CheckedPressed">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="Green"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="CheckedDisabled">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ToggleButtonCheckedDisabledForegroundThemeBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Indeterminate"/>
|
||||
<VisualState x:Name="IndeterminatePointerOver">
|
||||
</VisualState>
|
||||
<VisualState x:Name="IndeterminatePressed">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ToggleButtonPressedForegroundThemeBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="IndeterminateDisabled">
|
||||
<Storyboard>
|
||||
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
|
||||
<DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ToggleButtonDisabledForegroundThemeBrush}"/>
|
||||
</ObjectAnimationUsingKeyFrames>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
<VisualStateGroup x:Name="FocusStates">
|
||||
<VisualState x:Name="Focused">
|
||||
<Storyboard>
|
||||
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualWhite"/>
|
||||
<DoubleAnimation Duration="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="FocusVisualBlack"/>
|
||||
</Storyboard>
|
||||
</VisualState>
|
||||
<VisualState x:Name="Unfocused"/>
|
||||
<VisualState x:Name="PointerFocused"/>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<ContentPresenter x:Name="ContentPresenter" AutomationProperties.AccessibilityView="Raw" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTransitions="{TemplateBinding ContentTransitions}" Content="{TemplateBinding Content}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
|
||||
<Rectangle x:Name="FocusVisualWhite" IsHitTestVisible="False" Opacity="0" StrokeDashOffset="1.5" StrokeEndLineCap="Square" Stroke="{ThemeResource FocusVisualWhiteStrokeThemeBrush}" StrokeDashArray="1,1"/>
|
||||
<Rectangle x:Name="FocusVisualBlack" IsHitTestVisible="False" Opacity="0" StrokeDashOffset="0.5" StrokeEndLineCap="Square" Stroke="{ThemeResource FocusVisualBlackStrokeThemeBrush}" StrokeDashArray="1,1"/>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
|
@ -0,0 +1,55 @@
|
|||
namespace SplitView.ViewModels
|
||||
{
|
||||
using System.Threading.Tasks;
|
||||
using Base;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
using Services.Package;
|
||||
|
||||
public class AboutViewModel : ViewModelBase
|
||||
{
|
||||
// Variables
|
||||
private string _name;
|
||||
private string _version;
|
||||
|
||||
// Services
|
||||
private IPackageService _packageService;
|
||||
|
||||
public AboutViewModel(IPackageService packageService)
|
||||
{
|
||||
_packageService = packageService;
|
||||
}
|
||||
|
||||
public string Name
|
||||
{
|
||||
get { return _name; }
|
||||
set
|
||||
{
|
||||
_name = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public string Version
|
||||
{
|
||||
get { return _version; }
|
||||
set
|
||||
{
|
||||
_version = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public override Task OnNavigatedFrom(NavigationEventArgs args)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public override Task OnNavigatedTo(NavigationEventArgs args)
|
||||
{
|
||||
Name = _packageService.GetAppName();
|
||||
Version = _packageService.GetVersion();
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,131 @@
|
|||
using System;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace SplitView.ViewModels.Base
|
||||
{
|
||||
/// <summary>
|
||||
/// This class allows us to delegate command execution to viewmodels.
|
||||
/// </summary>
|
||||
public class DelegateCommand : ICommand
|
||||
{
|
||||
private readonly Action _execute;
|
||||
private readonly Func<bool> _canExecute;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor not using canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
public DelegateCommand(Action execute) : this(execute, null) { }
|
||||
|
||||
/// <summary>
|
||||
/// Constructor using both execute and canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
/// <param name="canExecute"></param>
|
||||
public DelegateCommand(Action execute, Func<bool> canExecute)
|
||||
{
|
||||
_execute = execute;
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to evaluate if the command can be executed.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanExecute(object parameter)
|
||||
{
|
||||
if (_canExecute != null)
|
||||
return _canExecute();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to execute the command.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
public void Execute(object parameter)
|
||||
{
|
||||
_execute();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method allow us to force the execution of CanExecute method to reevaluate execution.
|
||||
/// </summary>
|
||||
public void RaiseCanExecuteChanged()
|
||||
{
|
||||
var tmpHandle = CanExecuteChanged;
|
||||
if (tmpHandle != null)
|
||||
tmpHandle(this, new EventArgs());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This event notify XAML controls using the command to reevaluate the CanExecute of it.
|
||||
/// </summary>
|
||||
public event EventHandler CanExecuteChanged;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This class allows us to delegate command execution to viewmodels using a T type as parameter.
|
||||
/// </summary>
|
||||
public class DelegateCommand<T> : ICommand
|
||||
{
|
||||
private readonly Action<T> _execute;
|
||||
private readonly Func<T, bool> _canExecute;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor not using canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
public DelegateCommand(Action<T> execute) : this(execute, null) { }
|
||||
|
||||
/// <summary>
|
||||
/// Constructor using both execute and canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
/// <param name="canExecute"></param>
|
||||
public DelegateCommand(Action<T> execute, Func<T, bool> canExecute)
|
||||
{
|
||||
_execute = execute;
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to evaluate if the command can be executed.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanExecute(object parameter)
|
||||
{
|
||||
if (_canExecute != null)
|
||||
return _canExecute((T)parameter);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to execute the command.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
public void Execute(object parameter)
|
||||
{
|
||||
_execute((T)parameter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method allow us to force the execution of CanExecute method to reevaluate execution.
|
||||
/// </summary>
|
||||
public void RaiseCanExecuteChanged()
|
||||
{
|
||||
var tmpHandle = CanExecuteChanged;
|
||||
if (tmpHandle != null)
|
||||
tmpHandle(this, new EventArgs());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This event notify XAML controls using the command to reevaluate the CanExecute of it.
|
||||
/// </summary>
|
||||
public event EventHandler CanExecuteChanged;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,137 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Input;
|
||||
|
||||
namespace SplitView.ViewModels.Base
|
||||
{
|
||||
/// <summary>
|
||||
/// This class allows us to delegate command execution to viewmodels.
|
||||
/// This version of the command allow to use async/await.
|
||||
/// </summary>
|
||||
public class DelegateCommandAsync : ICommand
|
||||
{
|
||||
private readonly Func<Task<bool>> _canExecute;
|
||||
private readonly Func<Task> _execute;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor not using canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
public DelegateCommandAsync(Func<Task> execute) : this(execute, null)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor using both execute and canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
/// <param name="canExecute"></param>
|
||||
public DelegateCommandAsync(Func<Task> execute, Func<Task<bool>> canExecute)
|
||||
{
|
||||
_execute = execute;
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to evaluate if the command can be executed.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanExecute(object parameter)
|
||||
{
|
||||
if (_canExecute != null)
|
||||
return _canExecute().Result;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to execute the command.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
public void Execute(object parameter)
|
||||
{
|
||||
_execute();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This event notify XAML controls using the command to reevaluate the CanExecute of it.
|
||||
/// </summary>
|
||||
public event EventHandler CanExecuteChanged;
|
||||
|
||||
/// <summary>
|
||||
/// This method allow us to force the execution of CanExecute method to reevaluate execution.
|
||||
/// </summary>
|
||||
public void RaiseCanExecuteChanged()
|
||||
{
|
||||
EventHandler tmpHandle = CanExecuteChanged;
|
||||
if (tmpHandle != null)
|
||||
tmpHandle(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This class allows us to delegate command execution to viewmodels using a T type as parameter.
|
||||
/// </summary>
|
||||
public class DelegateCommandAsync<T> : ICommand
|
||||
{
|
||||
private readonly Func<T, Task<bool>> _canExecute;
|
||||
private readonly Func<T, Task> _execute;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor not using canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
public DelegateCommandAsync(Func<T, Task> execute) : this(execute, null)
|
||||
{
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Constructor using both execute and canExecute.
|
||||
/// </summary>
|
||||
/// <param name="execute"></param>
|
||||
/// <param name="canExecute"></param>
|
||||
public DelegateCommandAsync(Func<T, Task> execute, Func<T, Task<bool>> canExecute)
|
||||
{
|
||||
_execute = execute;
|
||||
_canExecute = canExecute;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to evaluate if the command can be executed.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
/// <returns></returns>
|
||||
public bool CanExecute(object parameter)
|
||||
{
|
||||
if (_canExecute != null)
|
||||
return _canExecute((T) parameter).Result;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This method is called from XAML to execute the command.
|
||||
/// </summary>
|
||||
/// <param name="parameter"></param>
|
||||
public void Execute(object parameter)
|
||||
{
|
||||
_execute((T) parameter);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This event notify XAML controls using the command to reevaluate the CanExecute of it.
|
||||
/// </summary>
|
||||
public event EventHandler CanExecuteChanged;
|
||||
|
||||
/// <summary>
|
||||
/// This method allow us to force the execution of CanExecute method to reevaluate execution.
|
||||
/// </summary>
|
||||
public void RaiseCanExecuteChanged()
|
||||
{
|
||||
EventHandler tmpHandle = CanExecuteChanged;
|
||||
if (tmpHandle != null)
|
||||
tmpHandle(this, new EventArgs());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,61 @@
|
|||
using System.ComponentModel;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
|
||||
namespace SplitView.ViewModels.Base
|
||||
{
|
||||
public abstract class ViewModelBase : INotifyPropertyChanged
|
||||
{
|
||||
private Frame appFrame;
|
||||
private Frame splitViewFrame;
|
||||
private bool isBusy;
|
||||
|
||||
public ViewModelBase()
|
||||
{
|
||||
}
|
||||
|
||||
public Frame AppFrame
|
||||
{
|
||||
get { return appFrame; }
|
||||
}
|
||||
public Frame SplitViewFrame
|
||||
{
|
||||
get { return splitViewFrame; }
|
||||
}
|
||||
|
||||
public bool IsBusy
|
||||
{
|
||||
get { return isBusy; }
|
||||
set
|
||||
{
|
||||
isBusy = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
public abstract Task OnNavigatedFrom(NavigationEventArgs args);
|
||||
|
||||
public abstract Task OnNavigatedTo(NavigationEventArgs args);
|
||||
|
||||
public void RaisePropertyChanged([CallerMemberName]string propertyName = "")
|
||||
{
|
||||
var Handler = PropertyChanged;
|
||||
if (Handler != null)
|
||||
Handler(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
|
||||
internal void SetAppFrame(Frame viewFrame)
|
||||
{
|
||||
appFrame = viewFrame;
|
||||
}
|
||||
|
||||
internal void SetSplitFrame(Frame viewFrame)
|
||||
{
|
||||
splitViewFrame = viewFrame;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
namespace SplitView.ViewModels.Base
|
||||
{
|
||||
using Services.Standings;
|
||||
using Microsoft.Practices.Unity;
|
||||
using Services.Package;
|
||||
|
||||
public class ViewModelLocator
|
||||
{
|
||||
readonly IUnityContainer _container;
|
||||
|
||||
public ViewModelLocator()
|
||||
{
|
||||
_container = new UnityContainer();
|
||||
|
||||
// ViewModels
|
||||
_container.RegisterType<MainViewModel>();
|
||||
_container.RegisterType<HomeViewModel>();
|
||||
_container.RegisterType<StandingsViewModel>();
|
||||
_container.RegisterType<AboutViewModel>();
|
||||
|
||||
// Services
|
||||
_container.RegisterType<IStandingService, StandingService>(new ContainerControlledLifetimeManager());
|
||||
_container.RegisterType<IPackageService, PackageService>(new ContainerControlledLifetimeManager());
|
||||
}
|
||||
|
||||
public MainViewModel MainViewModel
|
||||
{
|
||||
get { return _container.Resolve<MainViewModel>(); }
|
||||
}
|
||||
|
||||
public HomeViewModel HomeViewModel
|
||||
{
|
||||
get { return _container.Resolve<HomeViewModel>(); }
|
||||
}
|
||||
|
||||
public StandingsViewModel StandingsViewModel
|
||||
{
|
||||
get { return _container.Resolve<StandingsViewModel>(); }
|
||||
}
|
||||
|
||||
public AboutViewModel AboutViewModel
|
||||
{
|
||||
get { return _container.Resolve<AboutViewModel>(); }
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
namespace SplitView.ViewModels
|
||||
{
|
||||
using System.Threading.Tasks;
|
||||
using Base;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
using System.Collections.ObjectModel;
|
||||
using Models;
|
||||
using Windows.UI.Xaml;
|
||||
using System;
|
||||
|
||||
public class HomeViewModel : ViewModelBase
|
||||
{
|
||||
// Variables
|
||||
private DispatcherTimer _timer;
|
||||
private ObservableCollection<string> _gallery;
|
||||
private int _selectedImage;
|
||||
private ObservableCollection<DriverStanding> _driverStanding;
|
||||
|
||||
public ObservableCollection<string> Gallery
|
||||
{
|
||||
get { return _gallery; }
|
||||
set
|
||||
{
|
||||
_gallery = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public int SelectedImage
|
||||
{
|
||||
get { return _selectedImage; }
|
||||
set
|
||||
{
|
||||
_selectedImage = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public ObservableCollection<DriverStanding> DriverStanding
|
||||
{
|
||||
get { return _driverStanding; }
|
||||
set
|
||||
{
|
||||
_driverStanding = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public override Task OnNavigatedFrom(NavigationEventArgs args)
|
||||
{
|
||||
if (_timer != null)
|
||||
_timer.Tick -= ChangeImage;
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public override Task OnNavigatedTo(NavigationEventArgs args)
|
||||
{
|
||||
if (args.Parameter != null)
|
||||
{
|
||||
DriverStanding = args.Parameter as ObservableCollection<DriverStanding>;
|
||||
}
|
||||
|
||||
LoadGallery();
|
||||
|
||||
// Configure the timer
|
||||
_timer = new DispatcherTimer
|
||||
{
|
||||
//Set the interval between ticks (in this case 5 seconds to see it working)
|
||||
Interval = TimeSpan.FromSeconds(5)
|
||||
};
|
||||
|
||||
// Change what's displayed when the timer ticks
|
||||
_timer.Tick += ChangeImage;
|
||||
|
||||
// Start the timer
|
||||
_timer.Start();
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void LoadGallery()
|
||||
{
|
||||
Gallery = new ObservableCollection<string>();
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
Gallery.Add(string.Format("ms-appx:///Assets/Gallery/{0}.jpg", i + 1));
|
||||
}
|
||||
}
|
||||
|
||||
private void ChangeImage(object sender, object o)
|
||||
{
|
||||
// Get the number of items in the flip view
|
||||
var totalItems = Gallery.Count;
|
||||
// Figure out the new item's index (the current index plus one, if the next item would be out of range, go back to zero)
|
||||
var newItemIndex = (SelectedImage + 1) % totalItems;
|
||||
// Set the displayed item's index on the flip view
|
||||
SelectedImage = newItemIndex;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,178 @@
|
|||
namespace SplitView.ViewModels
|
||||
{
|
||||
using System.Threading.Tasks;
|
||||
using Base;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
using System.Windows.Input;
|
||||
using System.Collections.ObjectModel;
|
||||
using Models;
|
||||
using Views;
|
||||
using Services.Standings;
|
||||
using System.Linq;
|
||||
using System;
|
||||
|
||||
public class MainViewModel : ViewModelBase
|
||||
{
|
||||
// Variables
|
||||
private bool _isPaneOpen;
|
||||
private ObservableCollection<MenuItem> _menuItems;
|
||||
private MenuItem _selectedMenuItem;
|
||||
private ObservableCollection<DriverStanding> _driverStanding;
|
||||
|
||||
//Services
|
||||
private IStandingService _standingService;
|
||||
|
||||
// Commands
|
||||
private ICommand _hamburgerCommand;
|
||||
private ICommand _navigateCommand;
|
||||
private DelegateCommand _backCommand;
|
||||
|
||||
public MainViewModel(IStandingService standingService)
|
||||
{
|
||||
_standingService = standingService;
|
||||
}
|
||||
|
||||
public bool IsPaneOpen
|
||||
{
|
||||
get
|
||||
{
|
||||
return _isPaneOpen;
|
||||
}
|
||||
set
|
||||
{
|
||||
_isPaneOpen = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public ObservableCollection<MenuItem> MenuItems
|
||||
{
|
||||
get { return _menuItems; }
|
||||
set
|
||||
{
|
||||
_menuItems = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public MenuItem SelectedMenuItem
|
||||
{
|
||||
get { return _selectedMenuItem; }
|
||||
set
|
||||
{
|
||||
_selectedMenuItem = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public ICommand HamburgerCommand
|
||||
{
|
||||
get { return _hamburgerCommand = _hamburgerCommand ?? new DelegateCommand(HamburgerCommandExecute); }
|
||||
}
|
||||
|
||||
public ICommand NavigateCommand
|
||||
{
|
||||
get { return _navigateCommand = _navigateCommand ?? new DelegateCommand<MenuItem>(NavigateCommandExecute); }
|
||||
}
|
||||
|
||||
public DelegateCommand BackCommand
|
||||
{
|
||||
get { return _backCommand = _backCommand ?? new DelegateCommand(BackCommandExecute, BackCommandCanExecute); }
|
||||
}
|
||||
|
||||
public override Task OnNavigatedFrom(NavigationEventArgs args)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public override async Task OnNavigatedTo(NavigationEventArgs args)
|
||||
{
|
||||
IsPaneOpen = true;
|
||||
|
||||
await LoadDriverStanding();
|
||||
LoadMenu();
|
||||
}
|
||||
|
||||
private void LoadMenu()
|
||||
{
|
||||
MenuItems = new ObservableCollection<MenuItem>
|
||||
{
|
||||
new MenuItem
|
||||
{
|
||||
Icon = "",
|
||||
Title = "Home",
|
||||
View = typeof(HomeView)
|
||||
},
|
||||
new MenuItem
|
||||
{
|
||||
Icon = "",
|
||||
Title = "Standings",
|
||||
View = typeof(StandingsView)
|
||||
},
|
||||
new MenuItem
|
||||
{
|
||||
Icon = "",
|
||||
Title = "About",
|
||||
View = typeof(AboutView)
|
||||
}
|
||||
};
|
||||
|
||||
SelectedMenuItem = MenuItems.FirstOrDefault();
|
||||
Navigate(SelectedMenuItem.View);
|
||||
}
|
||||
|
||||
private async Task LoadDriverStanding()
|
||||
{
|
||||
var driverStandings = await _standingService.GetSeasonDriverStandingsCollectionAsync();
|
||||
var drivers = driverStandings.StandingsLists.First().DriverStandings;
|
||||
|
||||
_driverStanding = new ObservableCollection<DriverStanding>();
|
||||
foreach (var driver in drivers)
|
||||
{
|
||||
_driverStanding.Add(driver);
|
||||
}
|
||||
}
|
||||
|
||||
private void Navigate(Type view)
|
||||
{
|
||||
var type = view.Name;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case "HomeView":
|
||||
SplitViewFrame.Navigate(view, _driverStanding);
|
||||
break;
|
||||
case "StandingsView":
|
||||
SplitViewFrame.Navigate(view, _driverStanding);
|
||||
break;
|
||||
case "AboutView":
|
||||
SplitViewFrame.Navigate(view);
|
||||
break;
|
||||
}
|
||||
|
||||
BackCommand.RaiseCanExecuteChanged();
|
||||
}
|
||||
|
||||
private void HamburgerCommandExecute()
|
||||
{
|
||||
IsPaneOpen = (IsPaneOpen == true) ? false : true;
|
||||
}
|
||||
|
||||
private void NavigateCommandExecute(MenuItem menuItem)
|
||||
{
|
||||
Navigate(menuItem.View);
|
||||
}
|
||||
|
||||
private void BackCommandExecute()
|
||||
{
|
||||
SplitViewFrame.GoBack();
|
||||
var selectedMenuItem = SplitViewFrame.CurrentSourcePageType;
|
||||
SelectedMenuItem = MenuItems.FirstOrDefault(mi => mi.View.Equals(selectedMenuItem));
|
||||
}
|
||||
|
||||
private bool BackCommandCanExecute()
|
||||
{
|
||||
return SplitViewFrame.CanGoBack;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
namespace SplitView.ViewModels
|
||||
{
|
||||
using System.Threading.Tasks;
|
||||
using Base;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
using System.Collections.ObjectModel;
|
||||
using Models;
|
||||
|
||||
public class StandingsViewModel : ViewModelBase
|
||||
{
|
||||
private ObservableCollection<DriverStanding> _driverStanding;
|
||||
|
||||
public ObservableCollection<DriverStanding> DriverStanding
|
||||
{
|
||||
get { return _driverStanding; }
|
||||
set
|
||||
{
|
||||
_driverStanding = value;
|
||||
RaisePropertyChanged();
|
||||
}
|
||||
}
|
||||
|
||||
public override Task OnNavigatedFrom(NavigationEventArgs args)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public override Task OnNavigatedTo(NavigationEventArgs args)
|
||||
{
|
||||
if (args.Parameter != null)
|
||||
{
|
||||
DriverStanding = args.Parameter as ObservableCollection<DriverStanding>;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
<base:PageBase
|
||||
x:Class="SplitView.Views.AboutView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView"
|
||||
xmlns:base="using:SplitView.Views.Base"
|
||||
xmlns:behaviors="using:SplitView.Behaviors"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
DataContext="{Binding AboutViewModel, Source={StaticResource Locator}}">
|
||||
<Grid>
|
||||
<Grid
|
||||
Margin="25, 50">
|
||||
<Grid.Transitions>
|
||||
<TransitionCollection>
|
||||
<EntranceThemeTransition/>
|
||||
</TransitionCollection>
|
||||
</Grid.Transitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock
|
||||
Grid.Column="0"
|
||||
Grid.Row="0"
|
||||
Text="Name: "
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{StaticResource AccentBrush}" />
|
||||
<TextBlock
|
||||
Grid.Column="1"
|
||||
Grid.Row="0"
|
||||
Text="{Binding Name}"
|
||||
Margin="10, 0" />
|
||||
<TextBlock
|
||||
Grid.Column="0"
|
||||
Grid.Row="1"
|
||||
Text="Version: "
|
||||
FontWeight="SemiBold"
|
||||
Foreground="{StaticResource AccentBrush}" />
|
||||
<TextBlock
|
||||
Grid.Column="1"
|
||||
Grid.Row="1"
|
||||
Text="{Binding Version}"
|
||||
Margin="10, 0" />
|
||||
</Grid>
|
||||
</Grid>
|
||||
</base:PageBase>
|
|
@ -0,0 +1,12 @@
|
|||
namespace SplitView.Views
|
||||
{
|
||||
using Base;
|
||||
|
||||
public sealed partial class AboutView : PageBase
|
||||
{
|
||||
public AboutView()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
namespace SplitView.Views.Base
|
||||
{
|
||||
using ViewModels.Base;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
|
||||
public class PageBase : Page
|
||||
{
|
||||
private ViewModelBase _vm;
|
||||
private Frame _splitViewFrame;
|
||||
|
||||
public Frame SplitViewFrame
|
||||
{
|
||||
get { return _splitViewFrame; }
|
||||
set
|
||||
{
|
||||
_splitViewFrame = value;
|
||||
|
||||
if(_vm == null)
|
||||
_vm = (ViewModelBase)this.DataContext;
|
||||
|
||||
_vm.SetSplitFrame(_splitViewFrame);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnNavigatedTo(NavigationEventArgs e)
|
||||
{
|
||||
base.OnNavigatedTo(e);
|
||||
|
||||
_vm = (ViewModelBase)this.DataContext;
|
||||
_vm.SetAppFrame(this.Frame);
|
||||
_vm.OnNavigatedTo(e);
|
||||
}
|
||||
|
||||
protected override void OnNavigatedFrom(NavigationEventArgs e)
|
||||
{
|
||||
base.OnNavigatedFrom(e);
|
||||
_vm.OnNavigatedFrom(e);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,126 @@
|
|||
<base:PageBase
|
||||
x:Class="SplitView.Views.HomeView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView"
|
||||
xmlns:base="using:SplitView.Views.Base"
|
||||
xmlns:behaviors="using:SplitView.Behaviors"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
DataContext="{Binding HomeViewModel, Source={StaticResource Locator}}">
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup>
|
||||
<VisualState x:Name="wideState">
|
||||
<VisualState.StateTriggers>
|
||||
<AdaptiveTrigger MinWindowWidth="641" />
|
||||
</VisualState.StateTriggers>
|
||||
<VisualState.Setters>
|
||||
<Setter Target="Splitter.DisplayMode" Value="CompactInline"/>
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
<VisualState x:Name="narrowState">
|
||||
<VisualState.StateTriggers>
|
||||
<AdaptiveTrigger MinWindowWidth="0" />
|
||||
</VisualState.StateTriggers>
|
||||
<VisualState.Setters>
|
||||
<Setter Target="Splitter.DisplayMode" Value="Overlay"/>
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<Grid>
|
||||
<Grid.Transitions>
|
||||
<TransitionCollection>
|
||||
<EntranceThemeTransition/>
|
||||
</TransitionCollection>
|
||||
</Grid.Transitions>
|
||||
<ScrollViewer>
|
||||
<RelativePanel>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
<!-- Welcome -->
|
||||
<Grid
|
||||
Grid.Row="0"
|
||||
MaxHeight="400"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
RelativePanel.AlignTopWithPanel="True"
|
||||
RelativePanel.AlignLeftWithPanel="True"
|
||||
Margin="10">
|
||||
<Image
|
||||
Stretch="UniformToFill"
|
||||
Source="ms-appx:///Assets/Banner.jpg" />
|
||||
<Border
|
||||
Background="{StaticResource BackgroundPaneBrush}"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Bottom"
|
||||
Margin="0, 10">
|
||||
<StackPanel
|
||||
Margin="10, 0">
|
||||
<TextBlock
|
||||
Text="Welcome to"
|
||||
FontWeight="SemiLight"
|
||||
Foreground="{StaticResource WhiteBrush}"
|
||||
FontSize="{StaticResource FontSizeSmall}" />
|
||||
<TextBlock
|
||||
Text="FORMULA ONE 2015"
|
||||
Foreground="{StaticResource WhiteBrush}"
|
||||
FontWeight="SemiBold"
|
||||
FontSize="{StaticResource FontSizeMoreLarge}" />
|
||||
</StackPanel>
|
||||
</Border>
|
||||
</Grid>
|
||||
<!-- Standings -->
|
||||
<Grid
|
||||
Grid.Row="1">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition />
|
||||
<ColumnDefinition />
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel
|
||||
Grid.Column="0"
|
||||
Height="300"
|
||||
Margin="10, 0">
|
||||
<TextBlock
|
||||
Text="ALBUM"
|
||||
Style="{StaticResource HeaderStyle}" />
|
||||
<Grid
|
||||
Background="LightGray">
|
||||
<FlipView
|
||||
ItemsSource="{Binding Gallery}"
|
||||
ItemTemplate="{StaticResource GalleryDataTemplate}"
|
||||
SelectedIndex="{Binding SelectedImage, Mode=TwoWay}"
|
||||
Height="300">
|
||||
<FlipView.ItemsPanel>
|
||||
<ItemsPanelTemplate>
|
||||
<VirtualizingStackPanel Orientation="Vertical"/>
|
||||
</ItemsPanelTemplate>
|
||||
</FlipView.ItemsPanel>
|
||||
</FlipView>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
<StackPanel
|
||||
Grid.Column="1"
|
||||
Height="300"
|
||||
Margin="10, 0">
|
||||
<TextBlock
|
||||
Text="STANDINGS"
|
||||
Style="{StaticResource HeaderStyle}" />
|
||||
<Grid
|
||||
Background="LightGray">
|
||||
<ListView
|
||||
ItemsSource="{Binding DriverStanding}"
|
||||
ItemTemplate="{StaticResource DriverDataTemplate}"
|
||||
Height="300" />
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</RelativePanel>
|
||||
</ScrollViewer>
|
||||
</Grid>
|
||||
</base:PageBase>
|
|
@ -0,0 +1,12 @@
|
|||
namespace SplitView.Views
|
||||
{
|
||||
using Base;
|
||||
|
||||
public sealed partial class HomeView : PageBase
|
||||
{
|
||||
public HomeView()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,94 @@
|
|||
<base:PageBase
|
||||
x:Class="SplitView.Views.MainView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView"
|
||||
xmlns:base="using:SplitView.Views.Base"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:behaviors="using:SplitView.Behaviors"
|
||||
mc:Ignorable="d"
|
||||
DataContext="{Binding MainViewModel, Source={StaticResource Locator}}">
|
||||
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
<VisualStateManager.VisualStateGroups>
|
||||
<VisualStateGroup>
|
||||
<VisualState x:Name="wideState">
|
||||
<VisualState.StateTriggers>
|
||||
<AdaptiveTrigger MinWindowWidth="641" />
|
||||
</VisualState.StateTriggers>
|
||||
<VisualState.Setters>
|
||||
<Setter Target="Splitter.DisplayMode" Value="CompactInline"/>
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
<VisualState x:Name="narrowState">
|
||||
<VisualState.StateTriggers>
|
||||
<AdaptiveTrigger MinWindowWidth="0" />
|
||||
</VisualState.StateTriggers>
|
||||
<VisualState.Setters>
|
||||
<Setter Target="Splitter.DisplayMode" Value="Overlay"/>
|
||||
</VisualState.Setters>
|
||||
</VisualState>
|
||||
</VisualStateGroup>
|
||||
</VisualStateManager.VisualStateGroups>
|
||||
<SplitView x:Name="Splitter"
|
||||
DisplayMode="CompactInline"
|
||||
Background="{StaticResource BackgroundBrush}"
|
||||
PaneBackground="{StaticResource BackgroundPaneBrush}"
|
||||
PanePlacement="Left"
|
||||
CompactPaneLength="60"
|
||||
OpenPaneLength="240"
|
||||
IsPaneOpen="{Binding IsPaneOpen}">
|
||||
<SplitView.Pane>
|
||||
<RelativePanel>
|
||||
<RadioButton
|
||||
x:Name="BackButton"
|
||||
Command="{Binding BackCommand}"
|
||||
Background="{StaticResource SystemControlBackgroundAccentBrush}"
|
||||
Width="240"
|
||||
Margin="0, 50, 0, 0">
|
||||
<RadioButton.Tag>
|
||||
<TextBlock Text=""
|
||||
FontFamily="Segoe MDL2 Assets"
|
||||
VerticalAlignment="Center"
|
||||
HorizontalAlignment="Left"
|
||||
Margin="24, 0, 0 ,0" />
|
||||
</RadioButton.Tag>
|
||||
</RadioButton>
|
||||
<ListView
|
||||
ItemsSource="{Binding MenuItems}"
|
||||
SelectedItem="{Binding SelectedMenuItem, Mode=TwoWay}"
|
||||
ItemTemplate="{StaticResource MenuItemDataTemplate}"
|
||||
behaviors:ItemClickCommandBehavior.Command="{Binding NavigateCommand}"
|
||||
SelectionMode="Single"
|
||||
IsItemClickEnabled="True"
|
||||
Margin="0, 10, 0, 0"
|
||||
RelativePanel.Below="BackButton" />
|
||||
</RelativePanel>
|
||||
</SplitView.Pane>
|
||||
<Frame x:Name="SplitViewFrame"
|
||||
Margin="0, 10" />
|
||||
</SplitView>
|
||||
<Grid
|
||||
Background="{StaticResource AccentBrush}"
|
||||
Height="50"
|
||||
VerticalAlignment="Top">
|
||||
<ToggleButton
|
||||
x:Name="HamburguerButton"
|
||||
Style="{StaticResource SymbolButton}"
|
||||
Command="{Binding HamburgerCommand}"
|
||||
VerticalAlignment="Top"
|
||||
Foreground="White"
|
||||
Margin="0,5,0,0">
|
||||
<ToggleButton.Content>
|
||||
<Border Background="Transparent"
|
||||
Width="40"
|
||||
Height="40">
|
||||
<FontIcon x:Name="Hamburger"
|
||||
FontFamily="Segoe MDL2 Assets"
|
||||
Glyph="" />
|
||||
</Border>
|
||||
</ToggleButton.Content>
|
||||
</ToggleButton>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</base:PageBase>
|
|
@ -0,0 +1,14 @@
|
|||
namespace SplitView.Views
|
||||
{
|
||||
using Base;
|
||||
|
||||
public sealed partial class MainView : PageBase
|
||||
{
|
||||
public MainView()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
|
||||
base.SplitViewFrame = SplitViewFrame;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
<base:PageBase
|
||||
x:Class="SplitView.Views.StandingsView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:SplitView"
|
||||
xmlns:base="using:SplitView.Views.Base"
|
||||
xmlns:behaviors="using:SplitView.Behaviors"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
DataContext="{Binding StandingsViewModel, Source={StaticResource Locator}}">
|
||||
<Grid>
|
||||
<Grid.Transitions>
|
||||
<TransitionCollection>
|
||||
<EntranceThemeTransition/>
|
||||
</TransitionCollection>
|
||||
</Grid.Transitions>
|
||||
<ListView
|
||||
ItemsSource="{Binding DriverStanding}"
|
||||
ItemTemplate="{StaticResource DriverDataTemplate}"
|
||||
Margin="0, 40, 0, 0" />
|
||||
</Grid>
|
||||
</base:PageBase>
|
|
@ -0,0 +1,12 @@
|
|||
namespace SplitView.Views
|
||||
{
|
||||
using Base;
|
||||
|
||||
public sealed partial class StandingsView : PageBase
|
||||
{
|
||||
public StandingsView()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings" schemaVersion="2014-05-30">
|
||||
<!--
|
||||
Learn more about Application Insights configuration with ApplicationInsights.config here:
|
||||
http://go.microsoft.com/fwlink/?LinkID=513840
|
||||
-->
|
||||
<TelemetryModules>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.RuntimeTelemetry.RemoteDependencyModule, Microsoft.ApplicationInsights.Extensibility.RuntimeTelemetry" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.Windows.PageViewTelemetryModule, Microsoft.ApplicationInsights.Extensibility.Windows" />
|
||||
</TelemetryModules>
|
||||
<ContextInitializers>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.ComponentContextInitializer, Microsoft.ApplicationInsights" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.DeviceContextInitializer, Microsoft.ApplicationInsights" />
|
||||
</ContextInitializers>
|
||||
<TelemetryInitializers>
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.StoreAppSessionInitializer, Microsoft.ApplicationInsights" />
|
||||
<Add Type="Microsoft.ApplicationInsights.Extensibility.StoreAppUserInitializer, Microsoft.ApplicationInsights" />
|
||||
</TelemetryInitializers>
|
||||
<TelemetryChannel>
|
||||
<DeveloperMode>true</DeveloperMode>
|
||||
</TelemetryChannel>
|
||||
</ApplicationInsights>
|
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap mp build" xmlns:build="http://schemas.microsoft.com/developer/appx/2015/build">
|
||||
<!--
|
||||
THIS PACKAGE MANIFEST FILE IS GENERATED BY THE BUILD PROCESS.
|
||||
|
||||
Changes to this file will be lost when it is regenerated. To correct errors in this file, edit the source .appxmanifest file.
|
||||
|
||||
For more information on package manifest files, see http://go.microsoft.com/fwlink/?LinkID=241727
|
||||
-->
|
||||
<Identity Name="0292bb5c-575d-452b-9727-37959a650d0f" Publisher="CN=Javier" Version="1.0.0.0" ProcessorArchitecture="neutral" />
|
||||
<mp:PhoneIdentity PhoneProductId="0292bb5c-575d-452b-9727-37959a650d0f" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
|
||||
<Properties>
|
||||
<DisplayName>SplitView</DisplayName>
|
||||
<PublisherDisplayName>Javier</PublisherDisplayName>
|
||||
<Logo>Assets\StoreLogo.png</Logo>
|
||||
</Properties>
|
||||
<Dependencies>
|
||||
<TargetPlatform Name="Windows.Universal" MinVersion="10.0.10030.0" MaxVersionTested="10.0.10030.0" />
|
||||
</Dependencies>
|
||||
<Resources>
|
||||
<Resource Language="EN-US" />
|
||||
</Resources>
|
||||
<Applications>
|
||||
<Application Id="App" Executable="SplitView.exe" EntryPoint="SplitView.App">
|
||||
<uap:VisualElements DisplayName="SplitView" Square150x150Logo="Assets\Logo.png" Square44x44Logo="Assets\SmallLogo.png" Description="SplitView" ForegroundText="light" BackgroundColor="#464646">
|
||||
<uap:SplashScreen Image="Assets\SplashScreen.png" />
|
||||
</uap:VisualElements>
|
||||
</Application>
|
||||
</Applications>
|
||||
<Capabilities>
|
||||
<Capability Name="internetClient" />
|
||||
</Capabilities>
|
||||
<Extensions>
|
||||
<Extension Category="windows.activatableClass.inProcessServer">
|
||||
<InProcessServer>
|
||||
<Path>CLRHost.dll</Path>
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Extensibility.RuntimeTelemetry.RemoteDependencyModule" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Extensibility.Windows.PageViewTelemetryModule" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Extensibility.Windows.UnhandledExceptionTelemetryModule" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.TelemetryClient" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.DataContracts.RequestTelemetry" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.DataContracts.TelemetryContext" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.DataContracts.TraceTelemetry" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.DataContracts.ExceptionTelemetry" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.DataContracts.MetricTelemetry" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.DataContracts.EventTelemetry" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.DataContracts.PageViewTelemetry" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Channel.OutOfProcessTelemetryChannel" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Channel.InProcessTelemetryChannel" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Extensibility.ComponentContextInitializer" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Extensibility.StoreAppUserInitializer" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Extensibility.DeviceContextInitializer" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Extensibility.TimestampPropertyInitializer" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Extensibility.StoreAppSessionInitializer" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Extensibility.SequencePropertyInitializer" ThreadingModel="both" />
|
||||
<ActivatableClass ActivatableClassId="Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration" ThreadingModel="both" />
|
||||
</InProcessServer>
|
||||
</Extension>
|
||||
</Extensions>
|
||||
<build:Metadata>
|
||||
<build:Item Name="TargetFrameworkMoniker" Value=".NETCore,Version=v4.5.1" />
|
||||
<build:Item Name="VisualStudio" Version="14.0" />
|
||||
<build:Item Name="VisualStudioEdition" Value="Microsoft Visual Studio Ultimate 2015 CTP" />
|
||||
<build:Item Name="OperatingSystem" Version="10.0.10041.0 (fbl_impressive.150313-1821)" />
|
||||
<build:Item Name="Microsoft.Build.AppxPackage.dll" Version="14.0.22609.0" />
|
||||
<build:Item Name="ProjectGUID" Value="{8CB16DBD-D8B6-48A3-91C9-45E9FBE80632}" />
|
||||
<build:Item Name="ilc.exe" Version="1.0.22514.06 built by: PROJECTNREL" />
|
||||
<build:Item Name="Microsoft.Windows.UI.Xaml.Build.Tasks.dll" Version="14.0.22710.0" />
|
||||
<build:Item Name="MakePri.exe" Version="10.0.10030.0 (winmain_prs.150226-1653)" />
|
||||
</build:Metadata>
|
||||
</Package>
|
После Ширина: | Высота: | Размер: 78 KiB |
После Ширина: | Высота: | Размер: 320 KiB |
После Ширина: | Высота: | Размер: 406 KiB |
После Ширина: | Высота: | Размер: 350 KiB |
После Ширина: | Высота: | Размер: 499 KiB |
После Ширина: | Высота: | Размер: 272 KiB |
После Ширина: | Высота: | Размер: 340 KiB |
После Ширина: | Высота: | Размер: 437 KiB |
После Ширина: | Высота: | Размер: 281 KiB |
Двоичные данные
SplitView Back Button/SplitView/bin/Debug/AppX/Assets/Logo.scale-100.png
Normal file
После Ширина: | Высота: | Размер: 801 B |
Двоичные данные
SplitView Back Button/SplitView/bin/Debug/AppX/Assets/SmallLogo.scale-100.png
Normal file
После Ширина: | Высота: | Размер: 329 B |
Двоичные данные
SplitView Back Button/SplitView/bin/Debug/AppX/Assets/SplashScreen.scale-100.png
Normal file
После Ширина: | Высота: | Размер: 2.1 KiB |
Двоичные данные
SplitView Back Button/SplitView/bin/Debug/AppX/Assets/StoreLogo.scale-100.png
Normal file
После Ширина: | Высота: | Размер: 429 B |
Двоичные данные
SplitView Back Button/SplitView/bin/Debug/AppX/Assets/WideLogo.scale-100.png
Normal file
После Ширина: | Высота: | Размер: 2.1 KiB |