197 lines
13 KiB
XML
197 lines
13 KiB
XML
<UserControl x:Class="GeekDesk.Control.Other.SearchResControl"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:local="clr-namespace:GeekDesk.Control.Other"
|
|
xmlns:temp="clr-namespace:GeekDesk.ViewModel.Temp"
|
|
xmlns:hc="https://handyorg.github.io/handycontrol"
|
|
xmlns:cvt="clr-namespace:GeekDesk.Converts"
|
|
xmlns:cst="clr-namespace:GeekDesk.Constant"
|
|
xmlns:DraggAnimatedPanel="clr-namespace:DraggAnimatedPanel"
|
|
xmlns:xf="clr-namespace:XamlFlair;assembly=XamlFlair.WPF"
|
|
xmlns:viewmodel="clr-namespace:GeekDesk.ViewModel"
|
|
mc:Ignorable="d"
|
|
d:DesignHeight="450" d:DesignWidth="800"
|
|
>
|
|
<UserControl.Resources>
|
|
<Style x:Key="SearchListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
|
|
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
|
|
<Setter Property="VerticalAlignment" Value="Center"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="{x:Type ListBoxItem}">
|
|
<Border>
|
|
<Border.Style>
|
|
<Style TargetType="Border">
|
|
<Setter Property="VerticalAlignment" Value="Center"/>
|
|
</Style>
|
|
</Border.Style>
|
|
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
|
|
</Border>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style x:Key="ImageStyle" TargetType="Image">
|
|
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImageWidth, Mode=OneWay}"/>
|
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImageHeight, Mode=OneWay}"/>
|
|
<Setter Property="Source" Value="{Binding BitmapImage}"/>
|
|
</Style>
|
|
<Style x:Key="ImageStyleNoWrite" TargetType="Image">
|
|
<Setter Property="Width" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImageWidth, Mode=OneWay}"/>
|
|
<Setter Property="Height" Value="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.ImageHeight, Mode=OneWay}"/>
|
|
<Setter Property="Source" Value="{Binding BitmapImage_NoWrite}"/>
|
|
</Style>
|
|
|
|
<cvt:OpcityConvert x:Key="OpcityConvert"/>
|
|
<cvt:GetWidthByWWConvert x:Key="GetWidthByWWConvert"/>
|
|
<cvt:Visibility2BooleanConverter x:Key="Visibility2BooleanConverter"/>
|
|
</UserControl.Resources>
|
|
<Grid>
|
|
<Grid>
|
|
<WrapPanel Orientation="Horizontal"
|
|
Margin="10"
|
|
Panel.ZIndex="1"
|
|
>
|
|
<UniformGrid x:Name="VerticalUFG"
|
|
xf:Animations.Primary="{xf:Animate BasedOn={StaticResource FadeIn}, Event=Loaded}"
|
|
xf:Animations.Secondary="{xf:Animate BasedOn={StaticResource FadeOut}, Event=None}"
|
|
xf:Animations.SecondaryBinding="{Binding Visibility,
|
|
Converter={StaticResource Visibility2BooleanConverter}, ConverterParameter='reverse',
|
|
ElementName=VerticalUFG}"
|
|
>
|
|
<!--<hc:TransitioningContentControl TransitionMode="Left2RightWithFade">-->
|
|
<ListBox VirtualizingPanel.VirtualizationMode="Recycling"
|
|
VirtualizingPanel.IsVirtualizing="True"
|
|
VirtualizingPanel.IsContainerVirtualizable="True"
|
|
VirtualizingPanel.ScrollUnit="Pixel"
|
|
ItemsSource="{Binding}"
|
|
BorderThickness="0"
|
|
Padding="0,10,0,0"
|
|
x:Name="SearchListBox"
|
|
SelectionChanged="SearchListBox_SelectionChanged"
|
|
>
|
|
<ListBox.Template>
|
|
<ControlTemplate TargetType="ListBox">
|
|
<hc:ScrollViewer
|
|
HorizontalScrollBarVisibility="Hidden"
|
|
VerticalScrollBarVisibility="Auto"
|
|
IsInertiaEnabled="True"
|
|
CanContentScroll="True"
|
|
PreviewMouseWheel="VerticalIconList_PreviewMouseWheel"
|
|
ScrollChanged="VerticalCard_ScrollChanged"
|
|
>
|
|
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderBrush}">
|
|
<ItemsPresenter/>
|
|
</Border>
|
|
</hc:ScrollViewer>
|
|
</ControlTemplate>
|
|
</ListBox.Template>
|
|
|
|
<ListBox.Background>
|
|
<SolidColorBrush Opacity="0"/>
|
|
</ListBox.Background>
|
|
|
|
<ListBox.Resources>
|
|
<ContextMenu x:Key="IconDialog" Width="200">
|
|
<MenuItem Header="管理员方式运行" Click="IconAdminStart" Tag="{Binding}"/>
|
|
<MenuItem Header="打开文件所在位置" Click="ShowInExplore" Tag="{Binding}"/>
|
|
<MenuItem Header="资源管理器菜单" Click="SystemContextMenu" Tag="{Binding}"/>
|
|
</ContextMenu>
|
|
</ListBox.Resources>
|
|
|
|
<ListBox.ItemContainerStyle>
|
|
<Style TargetType="ListBoxItem" BasedOn="{StaticResource SearchListBoxItemStyle}">
|
|
<Setter Property="ContextMenu" Value="{StaticResource IconDialog}"/>
|
|
</Style>
|
|
</ListBox.ItemContainerStyle>
|
|
|
|
<ListBox.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<VirtualizingStackPanel
|
|
Orientation="Vertical"
|
|
Background="#00FFFFFF"
|
|
VirtualizationMode="Recycling"
|
|
IsVirtualizing="True"
|
|
IsContainerVirtualizable="True"
|
|
VirtualizingPanel.ScrollUnit="Pixel"
|
|
Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.WindowWidth, Mode=OneWay,
|
|
Converter={StaticResource GetWidthByWWConvert},
|
|
ConverterParameter={x:Static cst:WidthTypeEnum.RIGHT_CARD}}"
|
|
/>
|
|
</ItemsPanelTemplate>
|
|
</ListBox.ItemsPanel>
|
|
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<Border CornerRadius="8">
|
|
<Border.Style>
|
|
<Style TargetType="Border">
|
|
<Setter Property="VerticalAlignment" Value="Center"/>
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem }}}"
|
|
Value="True">
|
|
<Setter Property="Background">
|
|
<Setter.Value>
|
|
<SolidColorBrush Color="White" Opacity="0.68"/>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Border.Style>
|
|
<WrapPanel Tag="{Binding}"
|
|
Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.WindowWidth, Mode=OneWay,
|
|
Converter={StaticResource GetWidthByWWConvert},
|
|
ConverterParameter={x:Static cst:WidthTypeEnum.RIGHT_CARD_HALF}}"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
hc:Poptip.HitMode="None"
|
|
hc:Poptip.Placement="BottomLeft"
|
|
Background="#00FFFFFF"
|
|
MouseEnter="SearchIcon_MouseEnter"
|
|
MouseLeave="SearchIcon_MouseLeave"
|
|
MouseLeftButtonDown="Icon_MouseLeftButtonDown"
|
|
MouseLeftButtonUp="Icon_MouseLeftButtonUp"
|
|
MouseMove="SearchIcon_MouseMove"
|
|
Margin="25,10,0,10"
|
|
>
|
|
<Image Style="{StaticResource ImageStyleNoWrite}" RenderOptions.BitmapScalingMode="HighQuality"/>
|
|
<StackPanel Width="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.WindowWidth, Mode=OneWay,
|
|
Converter={StaticResource GetWidthByWWConvert},
|
|
ConverterParameter={x:Static cst:WidthTypeEnum.RIGHT_CARD_HALF_TEXT}}" >
|
|
<TextBlock
|
|
Margin="10,5,0,0"
|
|
MaxHeight="40"
|
|
FontSize="13"
|
|
TextTrimming="CharacterEllipsis"
|
|
TextAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
Foreground="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.TextColor}"
|
|
Text="{Binding Name}"/>
|
|
<TextBlock
|
|
Margin="10,10,0,0"
|
|
MaxHeight="40"
|
|
FontSize="11"
|
|
TextTrimming="CharacterEllipsis"
|
|
TextAlignment="Left"
|
|
VerticalAlignment="Center"
|
|
Foreground="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=DataContext.AppConfig.TextColor}"
|
|
Text="{Binding Path}"/>
|
|
</StackPanel>
|
|
</WrapPanel>
|
|
</Border>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
|
|
<!--</hc:TransitioningContentControl>-->
|
|
</UniformGrid>
|
|
</WrapPanel>
|
|
|
|
</Grid>
|
|
</Grid>
|
|
</UserControl>
|