Browse Source

搜索Item功能优化

liufei 3 years ago
parent
commit
eec261ca4a

+ 17 - 0
Constant/RunTimeStatus.cs

@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace GeekDesk.Constant
+{
+    internal class RunTimeStatus
+    {
+
+        /// <summary>
+        /// 查询框是否在工作
+        /// </summary>
+        public static bool SEARCH_BOX_SHOW = false;
+    }
+}

+ 1 - 7
Control/UserControls/PannelCard/LeftCardControl.xaml.cs

@@ -1,4 +1,5 @@
 using DraggAnimatedPanelExample;
+using GeekDesk.Constant;
 using GeekDesk.Control.Windows;
 using GeekDesk.MyThread;
 using GeekDesk.Util;
@@ -111,13 +112,6 @@ namespace GeekDesk.Control.UserControls.PannelCard
             }
         }
 
-        //////菜单点击事件
-        //private void MenuClick(object sender, MouseButtonEventArgs e)
-        //{
-        //    //设置对应菜单的图标列表
-        //    MenuInfo mi = (MenuInfo)(((StackPanel)sender).Tag);
-        //    appData.AppConfig.SelectedMenuIcons = mi.IconList;
-        //}
 
         /// <summary>
         /// 当修改菜单元素可见时 设置原菜单为不可见 并且不可选中

+ 16 - 5
Control/UserControls/PannelCard/RightCardControl.xaml

@@ -137,14 +137,17 @@
             </Grid>
         </hc:Card>
 
-        <hc:Card 
-                 x:Name="VerticalCard"
+        <hc:Card x:Name="VerticalCard"
                  Visibility="Hidden"
                  BorderThickness="1" 
                  Effect="{DynamicResource EffectShadow2}" 
-                 Margin="5,0,5,5" Grid.ColumnSpan="2">
+                 Margin="5,0,5,5" Grid.ColumnSpan="2"
+                 MouseLeftButtonDown="VerticalCard_MouseLeftButtonDown"
+                >
             <hc:Card.Background>
-                <SolidColorBrush Color="AliceBlue"  hc:GeometryEffect.GeometryEffect="20" Opacity="{Binding AppConfig.CardOpacity, Mode=TwoWay, Converter={StaticResource OpcityConvert}}"/>
+                <SolidColorBrush Color="AliceBlue" 
+                                 hc:GeometryEffect.GeometryEffect="20"
+                                 Opacity="{Binding AppConfig.CardOpacity, Mode=TwoWay, Converter={StaticResource OpcityConvert}}"/>
             </hc:Card.Background>
             <hc:Card.BorderBrush>
                 <SolidColorBrush Color="#FFFFFFFF" Opacity="0"/>
@@ -180,11 +183,19 @@
                             </Style>
                         </ListBox.ItemContainerStyle>
 
+                        <ListBox.ItemsPanel>
+                            <ItemsPanelTemplate>
+                                <StackPanel Background="#00FFFFFF"
+                                            Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.MenuCardWidth, Mode=OneWay, Converter={StaticResource SearchResWidth}, ConverterParameter=1}"
+                                            />
+                            </ItemsPanelTemplate>
+                        </ListBox.ItemsPanel>
+
                         <ListBox.ItemTemplate>
                             <DataTemplate>
                                 <WrapPanel Tag="{Binding}"
                                            Height="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImageHeight, Mode=OneWay}" 
-                                           Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.MenuCardWidth, Mode=OneWay, Converter={StaticResource SearchResWidth}}" 
+                                           Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.MenuCardWidth, Mode=OneWay, Converter={StaticResource SearchResWidth}, ConverterParameter=2}" 
                                            HorizontalAlignment="Left"
                                            hc:Poptip.HitMode="None"
                                            hc:Poptip.IsOpen="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}"

+ 20 - 1
Control/UserControls/PannelCard/RightCardControl.xaml.cs

@@ -129,7 +129,7 @@ namespace GeekDesk.Control.UserControls.PannelCard
             }
             else if (!appData.AppConfig.DoubleOpen && e.ClickCount == 1)
             {
-                IconInfo icon = (IconInfo)((SimpleStackPanel)sender).Tag;
+                IconInfo icon = (IconInfo)((Panel)sender).Tag;
                 if (icon.AdminStartUp)
                 {
                     StartIconApp(icon, IconStartType.ADMIN_STARTUP);
@@ -261,6 +261,12 @@ namespace GeekDesk.Control.UserControls.PannelCard
                     }
                 }
                 icon.Count++;
+
+                //隐藏搜索框
+                if (RunTimeStatus.SEARCH_BOX_SHOW)
+                {
+                    MainWindow.mainWindow.HidedSearchBox();
+                }
             }
             catch (Exception e)
             {
@@ -584,5 +590,18 @@ namespace GeekDesk.Control.UserControls.PannelCard
             }
         }
 
+        /// <summary>
+        /// 搜索Card点击事件
+        /// </summary>
+        /// <param name="sender"></param>
+        /// <param name="e"></param>
+        private void VerticalCard_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
+        {
+            //隐藏搜索框
+            if (RunTimeStatus.SEARCH_BOX_SHOW)
+            {
+                MainWindow.mainWindow.HidedSearchBox();
+            }
+        }
     }
 }

+ 10 - 2
Converts/SearchResWidth.cs

@@ -13,8 +13,16 @@ namespace GeekDesk.Converts
     {
         public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
         {
-            double menuLeftWidth = double.Parse(value.ToString());
-            return MainWindow.mainWindow.Width - menuLeftWidth;
+            string param = parameter as string;
+            if ("1".Equals(param))
+            {
+                double menuLeftWidth = double.Parse(value.ToString());
+                return MainWindow.mainWindow.Width - menuLeftWidth;
+            } else
+            {
+                double menuLeftWidth = double.Parse(value.ToString());
+                return (MainWindow.mainWindow.Width - menuLeftWidth) / 2;
+            }
         }
 
         public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)

+ 1 - 0
GeekDesk.csproj

@@ -130,6 +130,7 @@
     <Compile Include="Constant\IconType.cs" />
     <Compile Include="Constant\CommonEnum.cs" />
     <Compile Include="Constant\IconStartType.cs" />
+    <Compile Include="Constant\RunTimeStatus.cs" />
     <Compile Include="Constant\SortType.cs" />
     <Compile Include="Constant\TodoTaskExecType.cs" />
     <Compile Include="Constant\UpdateType.cs" />

+ 0 - 1
MainWindow.xaml

@@ -137,7 +137,6 @@
                     <TextBox Panel.ZIndex="2" Grid.Row="0" Grid.Column="1" 
                              x:Name="SearchBox"
                              Visibility="Collapsed"
-                             LostFocus="SearchBox_LostFocus"
                              Margin="-100,5,0,0"
                              Height="32"
                              FontSize="16"

+ 4 - 6
MainWindow.xaml.cs

@@ -58,6 +58,7 @@ namespace GeekDesk
         /// <param name="e"></param>
         private void SearchItem(object sender, CanExecuteRoutedEventArgs e)
         {
+            RunTimeStatus.SEARCH_BOX_SHOW = true;
             RightCard.VisibilitySearchCard(Visibility.Visible);
             SearchBox.Visibility = Visibility.Visible;
             SearchBox.Focus();
@@ -92,13 +93,10 @@ namespace GeekDesk
                 SearchIconList.IconList.Clear();
             }
         }
-        /// <summary>
-        /// 隐藏搜索框
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void SearchBox_LostFocus(object sender, RoutedEventArgs e)
+
+        public void HidedSearchBox()
         {
+            RunTimeStatus.SEARCH_BOX_SHOW = false;
             SearchIconList.IconList.Clear();
             RightCard.VisibilitySearchCard(Visibility.Collapsed);
             SearchBox.Visibility = Visibility.Collapsed;

+ 9 - 0
MainWindow.xaml.rej

@@ -0,0 +1,9 @@
+diff a/MainWindow.xaml b/MainWindow.xaml	(rejected hunks)
+@@ -20,6 +20,7 @@
+         SizeChanged="Window_SizeChanged"
+         KeyDown="OnKeyDown"
+         Focusable="True"
++        GotFocus="MainWindow_GotFocus"
+         MouseDown="MainWindow_MouseDown"
+         >
+     <WindowChrome.WindowChrome>