diff --git a/iNKORE.UI.WPF.Modern.sln b/iNKORE.UI.WPF.Modern.sln index a1b3d732..49732794 100644 --- a/iNKORE.UI.WPF.Modern.sln +++ b/iNKORE.UI.WPF.Modern.sln @@ -51,9 +51,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WindowExample", "samples\Wi EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IconKeyFileMaker", "tools\IconKeyFileMaker\IconKeyFileMaker.csproj", "{6561632F-0B5A-4869-8C82-E05238326B32}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExamplePhotoTaker", "sample\ExamplePhotoTaker\ExamplePhotoTaker.csproj", "{194059C8-5CBF-4548-8216-3D251CE43236}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ExamplePhotoTaker", "samples\ExamplePhotoTaker\ExamplePhotoTaker.csproj", "{194059C8-5CBF-4548-8216-3D251CE43236}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Acrylic10Example", "samples\Acrylic10Example\Acrylic10Example.csproj", "{84C80EA6-0F9C-49CF-AB66-5696CC888CA7}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NavigationViewExample", "samples\NavigationViewExample\NavigationViewExample.csproj", "{F9951C10-6C42-4E5F-BAB2-381C17D4DE35}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Acrylic10Example", "samples\Acrylic10Example\Acrylic10Example.csproj", "{84C80EA6-0F9C-49CF-AB66-5696CC888CA7}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -329,6 +331,26 @@ Global {194059C8-5CBF-4548-8216-3D251CE43236}.Release|x64.Build.0 = Release|Any CPU {194059C8-5CBF-4548-8216-3D251CE43236}.Release|x86.ActiveCfg = Release|Any CPU {194059C8-5CBF-4548-8216-3D251CE43236}.Release|x86.Build.0 = Release|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Debug|ARM.ActiveCfg = Debug|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Debug|ARM.Build.0 = Debug|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Debug|ARM64.Build.0 = Debug|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Debug|x64.ActiveCfg = Debug|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Debug|x64.Build.0 = Debug|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Debug|x86.ActiveCfg = Debug|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Debug|x86.Build.0 = Debug|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Release|Any CPU.Build.0 = Release|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Release|ARM.ActiveCfg = Release|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Release|ARM.Build.0 = Release|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Release|ARM64.ActiveCfg = Release|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Release|ARM64.Build.0 = Release|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Release|x64.ActiveCfg = Release|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Release|x64.Build.0 = Release|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Release|x86.ActiveCfg = Release|Any CPU + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35}.Release|x86.Build.0 = Release|Any CPU {84C80EA6-0F9C-49CF-AB66-5696CC888CA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {84C80EA6-0F9C-49CF-AB66-5696CC888CA7}.Debug|Any CPU.Build.0 = Debug|Any CPU {84C80EA6-0F9C-49CF-AB66-5696CC888CA7}.Debug|ARM.ActiveCfg = Debug|Any CPU @@ -366,6 +388,7 @@ Global {936F7656-B5E8-44A8-8560-D954E1E68383} = {A96F98E9-18B5-4863-8F28-9B7BDF70A128} {6561632F-0B5A-4869-8C82-E05238326B32} = {07337569-6CA9-4BB0-9C8F-962D981CB5F4} {194059C8-5CBF-4548-8216-3D251CE43236} = {A96F98E9-18B5-4863-8F28-9B7BDF70A128} + {F9951C10-6C42-4E5F-BAB2-381C17D4DE35} = {A96F98E9-18B5-4863-8F28-9B7BDF70A128} {84C80EA6-0F9C-49CF-AB66-5696CC888CA7} = {A96F98E9-18B5-4863-8F28-9B7BDF70A128} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/samples/ExamplePhotoTaker/ExamplePhotoTaker.csproj b/samples/ExamplePhotoTaker/ExamplePhotoTaker.csproj index 3966b293..0c297202 100644 --- a/samples/ExamplePhotoTaker/ExamplePhotoTaker.csproj +++ b/samples/ExamplePhotoTaker/ExamplePhotoTaker.csproj @@ -8,9 +8,17 @@ true + + + + + + + + diff --git a/samples/ExamplePhotoTaker/MainWindow.xaml b/samples/ExamplePhotoTaker/MainWindow.xaml index 865703cb..373da19f 100644 --- a/samples/ExamplePhotoTaker/MainWindow.xaml +++ b/samples/ExamplePhotoTaker/MainWindow.xaml @@ -4,8 +4,8 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:ExamplePhotoTaker" xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern" - mc:Ignorable="d" - Title="MainWindow" Height="450" Width="800"> + mc:Ignorable="d" ui:WindowHelper.UseModernWindowStyle="True" + Title="MainWindow" Height="450" Width="800" Language="en-US"> @@ -17,12 +17,35 @@ - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/ExamplePhotoTaker/MainWindow.xaml.cs b/samples/ExamplePhotoTaker/MainWindow.xaml.cs index 63cb3f4e..5f6d19a5 100644 --- a/samples/ExamplePhotoTaker/MainWindow.xaml.cs +++ b/samples/ExamplePhotoTaker/MainWindow.xaml.cs @@ -60,14 +60,6 @@ private void Button_SaveScreenshot_Click(object sender, RoutedEventArgs e) } } } - - private void HyperlinkButton_Click(object sender, RoutedEventArgs e) - { - Process.Start(new ProcessStartInfo("https://inkore.net/") - { - UseShellExecute = true - }); - } } class VacationSpots : ObservableCollection diff --git a/samples/ExamplePhotoTaker/david-van-dijk-3LTht2nxd34-unsplash.jpg b/samples/ExamplePhotoTaker/david-van-dijk-3LTht2nxd34-unsplash.jpg new file mode 100644 index 00000000..999a3b28 Binary files /dev/null and b/samples/ExamplePhotoTaker/david-van-dijk-3LTht2nxd34-unsplash.jpg differ diff --git a/samples/NavigationViewExample/App.xaml b/samples/NavigationViewExample/App.xaml new file mode 100644 index 00000000..1a886647 --- /dev/null +++ b/samples/NavigationViewExample/App.xaml @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/samples/NavigationViewExample/App.xaml.cs b/samples/NavigationViewExample/App.xaml.cs new file mode 100644 index 00000000..bae5a7d8 --- /dev/null +++ b/samples/NavigationViewExample/App.xaml.cs @@ -0,0 +1,14 @@ +using System.Configuration; +using System.Data; +using System.Windows; + +namespace NavigationViewExample +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + } + +} diff --git a/samples/NavigationViewExample/AssemblyInfo.cs b/samples/NavigationViewExample/AssemblyInfo.cs new file mode 100644 index 00000000..b0ec8275 --- /dev/null +++ b/samples/NavigationViewExample/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/samples/NavigationViewExample/MainWindow.xaml b/samples/NavigationViewExample/MainWindow.xaml new file mode 100644 index 00000000..aeec9023 --- /dev/null +++ b/samples/NavigationViewExample/MainWindow.xaml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/NavigationViewExample/MainWindow.xaml.cs b/samples/NavigationViewExample/MainWindow.xaml.cs new file mode 100644 index 00000000..9c81072d --- /dev/null +++ b/samples/NavigationViewExample/MainWindow.xaml.cs @@ -0,0 +1,60 @@ +using iNKORE.UI.WPF.Modern.Controls; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Page = iNKORE.UI.WPF.Modern.Controls.Page; + +namespace NavigationViewExample +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow : Window + { + public MainWindow() + { + InitializeComponent(); + } + + public Pages.AppsPage Page_Apps = new Pages.AppsPage(); + public Pages.HomePage Page_Home = new Pages.HomePage(); + public Pages.GamesPage Page_Games = new Pages.GamesPage(); + + private void NavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args) + { + var item = sender.SelectedItem; + Page? page = null; + + if(item == NavigationViewItem_Home) + { + page = Page_Home; + } + else if (item == NavigationViewItem_Games) + { + page = Page_Games; + } + else if (item == NavigationViewItem_Apps) + { + page = Page_Apps; + } + + if(page != null) + { + NavigationView_Root.Header = page.Title; + Frame_Main.Navigate(page); + } + } + + private void Window_Loaded(object sender, RoutedEventArgs e) + { + NavigationView_Root.SelectedItem = NavigationViewItem_Home; + } + } +} \ No newline at end of file diff --git a/samples/NavigationViewExample/NavigationViewExample.csproj b/samples/NavigationViewExample/NavigationViewExample.csproj new file mode 100644 index 00000000..459fade1 --- /dev/null +++ b/samples/NavigationViewExample/NavigationViewExample.csproj @@ -0,0 +1,17 @@ + + + + WinExe + net6.0-windows10.0.18362.0 + enable + enable + true + 7.0 + + + + + + + + diff --git a/samples/NavigationViewExample/Pages/AppsPage.xaml b/samples/NavigationViewExample/Pages/AppsPage.xaml new file mode 100644 index 00000000..c75dc1b5 --- /dev/null +++ b/samples/NavigationViewExample/Pages/AppsPage.xaml @@ -0,0 +1,15 @@ + + + + Current Page: Apps + + diff --git a/samples/NavigationViewExample/Pages/AppsPage.xaml.cs b/samples/NavigationViewExample/Pages/AppsPage.xaml.cs new file mode 100644 index 00000000..b59d0541 --- /dev/null +++ b/samples/NavigationViewExample/Pages/AppsPage.xaml.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Page = iNKORE.UI.WPF.Modern.Controls.Page; + +namespace NavigationViewExample.Pages +{ + /// + /// Interaction logic for AppsPage.xaml + /// + public partial class AppsPage : Page + { + public AppsPage() + { + InitializeComponent(); + } + } +} diff --git a/samples/NavigationViewExample/Pages/GamesPage.xaml b/samples/NavigationViewExample/Pages/GamesPage.xaml new file mode 100644 index 00000000..69fd04dc --- /dev/null +++ b/samples/NavigationViewExample/Pages/GamesPage.xaml @@ -0,0 +1,16 @@ + + + + Current Page: Games + + + \ No newline at end of file diff --git a/samples/NavigationViewExample/Pages/GamesPage.xaml.cs b/samples/NavigationViewExample/Pages/GamesPage.xaml.cs new file mode 100644 index 00000000..3effd6b8 --- /dev/null +++ b/samples/NavigationViewExample/Pages/GamesPage.xaml.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Page = iNKORE.UI.WPF.Modern.Controls.Page; + + +namespace NavigationViewExample.Pages +{ + /// + /// Interaction logic for GamesPage.xaml + /// + public partial class GamesPage : Page + { + public GamesPage() + { + InitializeComponent(); + } + } +} diff --git a/samples/NavigationViewExample/Pages/HomePage.xaml b/samples/NavigationViewExample/Pages/HomePage.xaml new file mode 100644 index 00000000..03014d76 --- /dev/null +++ b/samples/NavigationViewExample/Pages/HomePage.xaml @@ -0,0 +1,15 @@ + + + + Current Page: Home + + diff --git a/samples/NavigationViewExample/Pages/HomePage.xaml.cs b/samples/NavigationViewExample/Pages/HomePage.xaml.cs new file mode 100644 index 00000000..271dd9c6 --- /dev/null +++ b/samples/NavigationViewExample/Pages/HomePage.xaml.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; +using Page = iNKORE.UI.WPF.Modern.Controls.Page; + +namespace NavigationViewExample.Pages +{ + /// + /// Interaction logic for HomePage.xaml + /// + public partial class HomePage : Page + { + public HomePage() + { + InitializeComponent(); + } + } +} diff --git a/source/iNKORE.UI.WPF.Modern/Controls/Primitives/TitleBar.cs b/source/iNKORE.UI.WPF.Modern/Controls/Primitives/TitleBar.cs index 2e8901af..6948aa55 100644 --- a/source/iNKORE.UI.WPF.Modern/Controls/Primitives/TitleBar.cs +++ b/source/iNKORE.UI.WPF.Modern/Controls/Primitives/TitleBar.cs @@ -367,7 +367,7 @@ internal static void SetSystemOverlayRightInset(Window window, double value) "Height", typeof(double), typeof(TitleBar), - new PropertyMetadata(32d)); + new PropertyMetadata(36d)); public static double GetHeight(Window window)