From 64416aef2bdd3577228e437c5afb7a2039d07272 Mon Sep 17 00:00:00 2001 From: Barbara Kudiess Date: Fri, 27 Mar 2020 16:10:49 -0700 Subject: [PATCH] Add main view model binding --- .../PowerLauncher.UI/LauncherControl.xaml | 3 +- .../launcher/PowerLauncher/MainWindow.xaml.cs | 68 +++++++++++++------ 2 files changed, 49 insertions(+), 22 deletions(-) diff --git a/src/modules/launcher/PowerLauncher.UI/LauncherControl.xaml b/src/modules/launcher/PowerLauncher.UI/LauncherControl.xaml index 44fb10e83a..0674f84b42 100644 --- a/src/modules/launcher/PowerLauncher.UI/LauncherControl.xaml +++ b/src/modules/launcher/PowerLauncher.UI/LauncherControl.xaml @@ -8,7 +8,6 @@ mc:Ignorable="d" xmlns:ToolkitBehaviors="using:Microsoft.Toolkit.Uwp.UI.Animations.Behaviors" xmlns:Core="using:Microsoft.Xaml.Interactions.Core" - xmlns:Behaviors="using:PowerToysUX.Behaviours" xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" d:DesignHeight="300" d:DesignWidth="400"> @@ -418,7 +417,7 @@ - + diff --git a/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs b/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs index dd5d16647c..7123f4f6ac 100644 --- a/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs +++ b/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs @@ -168,19 +168,19 @@ namespace PowerLauncher } } - //private void UpdatePosition() - //{ - // if (_settings.RememberLastLaunchLocation) - // { - // Left = _settings.WindowLeft; - // Top = _settings.WindowTop; - // } - // else - // { - // Left = WindowLeft(); - // Top = WindowTop(); - // } - //} + private void UpdatePosition() + { + if (_settings.RememberLastLaunchLocation) + { + Left = _settings.WindowLeft; + Top = _settings.WindowTop; + } + else + { + Left = WindowLeft(); + //Top = WindowTop(); + } + } private void OnLocationChanged(object sender, EventArgs e) { @@ -246,14 +246,42 @@ namespace PowerLauncher // } //} - private void WindowsXamlHost_ChildChanged(object sender, EventArgs e) + private PowerLauncher.UI.LauncherControl _launcher = null; + private void WindowsXamlHost_ChildChanged(object sender, EventArgs ev) { - // Hook up x:Bind source. - global::Microsoft.Toolkit.Wpf.UI.XamlHost.WindowsXamlHost windowsXamlHost = - sender as global::Microsoft.Toolkit.Wpf.UI.XamlHost.WindowsXamlHost; - global::PowerLauncher.UI.LauncherControl userControl = - windowsXamlHost.GetUwpInternalObject() as global::PowerLauncher.UI.LauncherControl; + if (sender == null) return; + var host = (WindowsXamlHost)sender; + _launcher = (PowerLauncher.UI.LauncherControl)host.Child; + _launcher.DataContext = _viewModel; + _launcher.SearchBox.TextChanged += QueryTextBox_TextChanged; + + _launcher.SearchBox.Focus(Windows.UI.Xaml.FocusState.Programmatic); + + _viewModel.PropertyChanged += (o, e) => + { + if (e.PropertyName == nameof(MainViewModel.MainWindowVisibility)) + { + if (Visibility == System.Windows.Visibility.Visible) + { + Activate(); + _launcher.SearchBox.Focus(Windows.UI.Xaml.FocusState.Programmatic); + UpdatePosition(); + _settings.ActivateTimes++; + if (!_viewModel.LastQuerySelected) + { + _viewModel.LastQuerySelected = true; + } + } + } + }; + } + private void QueryTextBox_TextChanged(Windows.UI.Xaml.Controls.AutoSuggestBox sender, Windows.UI.Xaml.Controls.AutoSuggestBoxTextChangedEventArgs args) + { + if (_viewModel.QueryTextCursorMovedToEnd) + { + _viewModel.QueryTextCursorMovedToEnd = false; + } } } -} \ No newline at end of file + } \ No newline at end of file