🐛 修复通过任务栏图标打开拾色器, 菜单消失问题

This commit is contained in:
liufei
2022-05-27 10:48:34 +08:00
parent f1a5e64617
commit 9cbbd6cf45
3 changed files with 23 additions and 21 deletions

View File

@@ -81,15 +81,25 @@ namespace GeekDesk.Control.Windows
if (window == null || !window.Activate()) if (window == null || !window.Activate())
{ {
window = new GlobalColorPickerWindow(); window = new GlobalColorPickerWindow();
window.Opacity = 0;
App.DoEvents();
window.Show(); window.Show();
} }
window.Hide(); window.Hide();
new Thread(() =>
{
Thread.Sleep(200);
App.Current.Dispatcher.Invoke(() =>
{
GlobalColorPickerWindow thisWindow = (GlobalColorPickerWindow)window; GlobalColorPickerWindow thisWindow = (GlobalColorPickerWindow)window;
if (thisWindow.colorPickerWindow == null || !thisWindow.colorPickerWindow.Activate()) if (thisWindow.colorPickerWindow == null || !thisWindow.colorPickerWindow.Activate())
{ {
thisWindow.colorPickerWindow = new PixelColorPickerWindow(thisWindow.MyColorPicker); thisWindow.colorPickerWindow = new PixelColorPickerWindow(thisWindow.MyColorPicker);
} }
thisWindow.colorPickerWindow.Show(); thisWindow.colorPickerWindow.Show();
});
}).Start();
} }
public static void Show() public static void Show()
@@ -98,6 +108,7 @@ namespace GeekDesk.Control.Windows
{ {
window = new GlobalColorPickerWindow(); window = new GlobalColorPickerWindow();
} }
window.Opacity = 1;
window.Show(); window.Show();
Keyboard.Focus(window); Keyboard.Focus(window);
} }

View File

@@ -141,10 +141,8 @@
TextChanged="SearchBox_TextChanged" TextChanged="SearchBox_TextChanged"
/> />
<uc:RightCardControl x:Name="RightCard" Grid.Row="1" Grid.Column="1"/>
<hc:NotifyIcon Icon="/Taskbar.ico" Click="NotifyIcon_Click" x:Name="BarIcon" <hc:NotifyIcon Icon="/Taskbar.ico" Click="NotifyIcon_Click" x:Name="BarIcon"
MouseRightButtonDown="BarIcon_MouseRightButtonDown"
Visibility="{Binding AppConfig.ShowBarIcon, Mode=TwoWay, Converter={StaticResource Boolean2VisibilityConverter}}"> Visibility="{Binding AppConfig.ShowBarIcon, Mode=TwoWay, Converter={StaticResource Boolean2VisibilityConverter}}">
<hc:NotifyIcon.ContextMenu> <hc:NotifyIcon.ContextMenu>
<ContextMenu Width="130" x:Name="TaskbarContextMenu"> <ContextMenu Width="130" x:Name="TaskbarContextMenu">
@@ -158,8 +156,10 @@
<MenuItem Header="退出" Click="ExitApp"/> <MenuItem Header="退出" Click="ExitApp"/>
</ContextMenu> </ContextMenu>
</hc:NotifyIcon.ContextMenu> </hc:NotifyIcon.ContextMenu>
</hc:NotifyIcon> </hc:NotifyIcon>
<uc:RightCardControl x:Name="RightCard" Grid.Row="1" Grid.Column="1"/>
<StackPanel hc:Growl.GrowlParent="True" VerticalAlignment="Top" Margin="0,10,10,0"/> <StackPanel hc:Growl.GrowlParent="True" VerticalAlignment="Top" Margin="0,10,10,0"/>
</Grid> </Grid>
</Border> </Border>

View File

@@ -718,20 +718,10 @@ namespace GeekDesk
/// <param name="e"></param> /// <param name="e"></param>
private void ColorPicker(object sender, RoutedEventArgs e) private void ColorPicker(object sender, RoutedEventArgs e)
{ {
TaskbarContextMenu.Visibility = Visibility.Collapsed; TaskbarContextMenu.IsOpen = false;
App.DoEvents();
GlobalColorPickerWindow.CreateNoShow(); GlobalColorPickerWindow.CreateNoShow();
} }
/// <summary>
/// 防止点击拾色器后无法显示菜单的问题
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BarIcon_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
TaskbarContextMenu.Visibility = Visibility.Visible;
}
private void Window_GotFocus(object sender, RoutedEventArgs e) private void Window_GotFocus(object sender, RoutedEventArgs e)
{ {
@@ -742,5 +732,6 @@ namespace GeekDesk
{ {
AppWindowLostFocus(); AppWindowLostFocus();
} }
} }
} }