mirror of
https://github.com/Flow-Launcher/Flow.Launcher.git
synced 2026-03-11 08:54:32 +00:00
545 lines
30 KiB
XML
545 lines
30 KiB
XML
<Window
|
|
x:Class="Flow.Launcher.MainWindow"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:converters="clr-namespace:Flow.Launcher.Converters"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:flowlauncher="clr-namespace:Flow.Launcher"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:ui="http://schemas.inkore.net/lib/ui/wpf/modern"
|
|
xmlns:vm="clr-namespace:Flow.Launcher.ViewModel"
|
|
Name="FlowMainWindow"
|
|
Title="Flow Launcher"
|
|
Width="{Binding MainWindowWidth, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
MinWidth="400"
|
|
MinHeight="30"
|
|
d:DataContext="{d:DesignInstance Type=vm:MainViewModel}"
|
|
AllowDrop="True"
|
|
AllowsTransparency="True"
|
|
Background="Transparent"
|
|
Closed="OnClosed"
|
|
Closing="OnClosing"
|
|
Deactivated="OnDeactivated"
|
|
Icon="Images/app.png"
|
|
Left="{Binding Settings.WindowLeft, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
Loaded="OnLoaded"
|
|
LocationChanged="OnLocationChanged"
|
|
PreviewKeyDown="OnKeyDown"
|
|
PreviewKeyUp="OnKeyUp"
|
|
PreviewMouseMove="OnPreviewMouseMove"
|
|
ResizeMode="CanResize"
|
|
ShowInTaskbar="False"
|
|
SizeToContent="Height"
|
|
SourceInitialized="OnSourceInitialized"
|
|
Topmost="True"
|
|
Visibility="{Binding MainWindowVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
WindowStartupLocation="Manual"
|
|
WindowStyle="None"
|
|
mc:Ignorable="d">
|
|
<!-- WindowChrome -->
|
|
<WindowChrome.WindowChrome>
|
|
<WindowChrome CaptionHeight="9" />
|
|
</WindowChrome.WindowChrome>
|
|
<Window.Resources>
|
|
<converters:QuerySuggestionBoxConverter x:Key="QuerySuggestionBoxConverter" />
|
|
<converters:BorderClipConverter x:Key="BorderClipConverter" />
|
|
<converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
|
|
<converters:SplitterConverter x:Key="SplitterConverter" />
|
|
<converters:BoolToIMEConversionModeConverter x:Key="BoolToIMEConversionModeConverter" />
|
|
<converters:BoolToIMEStateConverter x:Key="BoolToIMEStateConverter" />
|
|
<converters:StringToKeyBindingConverter x:Key="StringToKeyBindingConverter" />
|
|
</Window.Resources>
|
|
<Window.InputBindings>
|
|
<KeyBinding Key="Escape" Command="{Binding EscCommand}" />
|
|
<KeyBinding Key="F5" Command="{Binding ReloadPluginDataCommand}" />
|
|
<KeyBinding
|
|
Key="Home"
|
|
Command="{Binding SelectFirstResultCommand}"
|
|
Modifiers="Alt" />
|
|
<KeyBinding
|
|
Key="End"
|
|
Command="{Binding SelectLastResultCommand}"
|
|
Modifiers="Alt" />
|
|
<KeyBinding
|
|
Key="R"
|
|
Command="{Binding ReQueryCommand}"
|
|
Modifiers="Ctrl" />
|
|
<KeyBinding
|
|
Key="OemCloseBrackets"
|
|
Command="{Binding IncreaseWidthCommand}"
|
|
Modifiers="Control" />
|
|
<KeyBinding
|
|
Key="OemOpenBrackets"
|
|
Command="{Binding DecreaseWidthCommand}"
|
|
Modifiers="Control" />
|
|
<KeyBinding
|
|
Key="OemPlus"
|
|
Command="{Binding IncreaseMaxResultCommand}"
|
|
Modifiers="Control" />
|
|
<KeyBinding
|
|
Key="OemMinus"
|
|
Command="{Binding DecreaseMaxResultCommand}"
|
|
Modifiers="Control" />
|
|
<KeyBinding
|
|
Key="Enter"
|
|
Command="{Binding OpenResultCommand}"
|
|
Modifiers="Ctrl+Shift" />
|
|
<KeyBinding
|
|
Key="Enter"
|
|
Command="{Binding LoadContextMenuCommand}"
|
|
Modifiers="Shift" />
|
|
<KeyBinding Key="Enter" Command="{Binding OpenResultCommand}" />
|
|
<KeyBinding
|
|
Key="Enter"
|
|
Command="{Binding OpenResultCommand}"
|
|
Modifiers="Ctrl" />
|
|
<KeyBinding
|
|
Key="Enter"
|
|
Command="{Binding OpenResultCommand}"
|
|
Modifiers="Alt" />
|
|
<KeyBinding
|
|
Key="D1"
|
|
Command="{Binding OpenResultCommand}"
|
|
CommandParameter="0"
|
|
Modifiers="{Binding OpenResultCommandModifiers}" />
|
|
<KeyBinding
|
|
Key="D2"
|
|
Command="{Binding OpenResultCommand}"
|
|
CommandParameter="1"
|
|
Modifiers="{Binding OpenResultCommandModifiers}" />
|
|
<KeyBinding
|
|
Key="D3"
|
|
Command="{Binding OpenResultCommand}"
|
|
CommandParameter="2"
|
|
Modifiers="{Binding OpenResultCommandModifiers}" />
|
|
<KeyBinding
|
|
Key="D4"
|
|
Command="{Binding OpenResultCommand}"
|
|
CommandParameter="3"
|
|
Modifiers="{Binding OpenResultCommandModifiers}" />
|
|
<KeyBinding
|
|
Key="D5"
|
|
Command="{Binding OpenResultCommand}"
|
|
CommandParameter="4"
|
|
Modifiers="{Binding OpenResultCommandModifiers}" />
|
|
<KeyBinding
|
|
Key="D6"
|
|
Command="{Binding OpenResultCommand}"
|
|
CommandParameter="5"
|
|
Modifiers="{Binding OpenResultCommandModifiers}" />
|
|
<KeyBinding
|
|
Key="D7"
|
|
Command="{Binding OpenResultCommand}"
|
|
CommandParameter="6"
|
|
Modifiers="{Binding OpenResultCommandModifiers}" />
|
|
<KeyBinding
|
|
Key="D8"
|
|
Command="{Binding OpenResultCommand}"
|
|
CommandParameter="7"
|
|
Modifiers="{Binding OpenResultCommandModifiers}" />
|
|
<KeyBinding
|
|
Key="D9"
|
|
Command="{Binding OpenResultCommand}"
|
|
CommandParameter="8"
|
|
Modifiers="{Binding OpenResultCommandModifiers}" />
|
|
<KeyBinding
|
|
Key="D0"
|
|
Command="{Binding OpenResultCommand}"
|
|
CommandParameter="9"
|
|
Modifiers="{Binding OpenResultCommandModifiers}" />
|
|
<KeyBinding
|
|
Key="F12"
|
|
Command="{Binding ToggleGameModeCommand}"
|
|
Modifiers="Ctrl" />
|
|
<KeyBinding
|
|
Key="C"
|
|
Command="{Binding CopyAlternativeCommand}"
|
|
Modifiers="Ctrl+Shift" />
|
|
<KeyBinding
|
|
Key="{Binding PreviewHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding TogglePreviewCommand}"
|
|
Modifiers="{Binding PreviewHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding AutoCompleteHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding AutocompleteQueryCommand}"
|
|
Modifiers="{Binding AutoCompleteHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding AutoCompleteHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding AutocompleteQueryCommand}"
|
|
Modifiers="{Binding AutoCompleteHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding SelectNextItemHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding SelectNextItemCommand}"
|
|
Modifiers="{Binding SelectNextItemHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding SelectPrevItemHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding SelectPrevItemCommand}"
|
|
Modifiers="{Binding SelectPrevItemHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding SelectNextItemHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding SelectNextItemCommand}"
|
|
Modifiers="{Binding SelectNextItemHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding SelectPrevItemHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding SelectPrevItemCommand}"
|
|
Modifiers="{Binding SelectPrevItemHotkey2, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding SettingWindowHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding OpenSettingCommand}"
|
|
Modifiers="{Binding SettingWindowHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding OpenHistoryHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding LoadHistoryCommand}"
|
|
Modifiers="{Binding OpenHistoryHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding OpenContextMenuHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding LoadContextMenuCommand}"
|
|
Modifiers="{Binding OpenContextMenuHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding SelectNextPageHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding SelectNextPageCommand}"
|
|
Modifiers="{Binding SelectNextPageHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding SelectPrevPageHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding SelectPrevPageCommand}"
|
|
Modifiers="{Binding SelectPrevPageHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding CycleHistoryUpHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding ReverseHistoryCommand}"
|
|
Modifiers="{Binding CycleHistoryUpHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
<KeyBinding
|
|
Key="{Binding CycleHistoryDownHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='key'}"
|
|
Command="{Binding ForwardHistoryCommand}"
|
|
Modifiers="{Binding CycleHistoryDownHotkey, Converter={StaticResource StringToKeyBindingConverter}, ConverterParameter='modifiers'}" />
|
|
</Window.InputBindings>
|
|
|
|
<Border MouseDown="OnMouseDown" Style="{DynamicResource WindowBorderStyle}">
|
|
<StackPanel Orientation="Vertical">
|
|
<Grid x:Name="QueryBoxArea">
|
|
<Border MinHeight="30" Style="{DynamicResource QueryBoxBgStyle}">
|
|
<Grid>
|
|
<TextBox
|
|
x:Name="QueryTextPlaceholderBox"
|
|
Height="{Binding MainWindowHeight, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
FontSize="{Binding QueryBoxFontSize, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
IsEnabled="False"
|
|
Style="{DynamicResource QuerySuggestionBoxStyle}"
|
|
Text="{Binding PlaceholderText, Mode=OneWay}"
|
|
Visibility="Collapsed" />
|
|
<TextBox
|
|
x:Name="QueryTextSuggestionBox"
|
|
Height="{Binding MainWindowHeight, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
FontSize="{Binding QueryBoxFontSize, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
IsEnabled="False"
|
|
Style="{DynamicResource QuerySuggestionBoxStyle}">
|
|
<TextBox.Text>
|
|
<MultiBinding Converter="{StaticResource QuerySuggestionBoxConverter}">
|
|
<Binding ElementName="QueryTextBox" Mode="OneTime" />
|
|
<Binding ElementName="ResultListBox" Path="SelectedItem" />
|
|
<Binding ElementName="QueryTextBox" Path="Text" />
|
|
</MultiBinding>
|
|
</TextBox.Text>
|
|
</TextBox>
|
|
<TextBox
|
|
x:Name="QueryTextBox"
|
|
Height="{Binding MainWindowHeight, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
AllowDrop="True"
|
|
AutomationProperties.Name="{Binding Results.SelectedItem.Result.Title}"
|
|
FontSize="{Binding QueryBoxFontSize, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
InputMethod.PreferredImeConversionMode="{Binding StartWithEnglishMode, Converter={StaticResource BoolToIMEConversionModeConverter}}"
|
|
InputMethod.PreferredImeState="{Binding StartWithEnglishMode, Converter={StaticResource BoolToIMEStateConverter}}"
|
|
PreviewDragOver="QueryTextBox_OnPreviewDragOver"
|
|
PreviewKeyUp="QueryTextBox_KeyUp"
|
|
Style="{DynamicResource QueryBoxStyle}"
|
|
Text="{Binding QueryText, Mode=OneWay}"
|
|
TextChanged="QueryTextBox_TextChanged1"
|
|
Visibility="Visible"
|
|
WindowChrome.IsHitTestVisibleInChrome="True">
|
|
<TextBox.CommandBindings>
|
|
<CommandBinding Command="ApplicationCommands.Copy" Executed="QueryTextBox_OnCopy" />
|
|
</TextBox.CommandBindings>
|
|
<TextBox.ContextMenu>
|
|
<ContextMenu MinWidth="160">
|
|
<MenuItem Command="ApplicationCommands.Cut" Header="{DynamicResource cut}">
|
|
<MenuItem.Icon>
|
|
<ui:FontIcon Glyph="" />
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Command="ApplicationCommands.Copy" Header="{DynamicResource copy}">
|
|
<MenuItem.Icon>
|
|
<ui:FontIcon Glyph="" />
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Command="ApplicationCommands.Paste" Header="{DynamicResource paste}">
|
|
<MenuItem.Icon>
|
|
<ui:FontIcon Glyph="" />
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<Separator
|
|
Margin="0"
|
|
Padding="0 4 0 4"
|
|
Background="{DynamicResource ContextSeparator}" />
|
|
<MenuItem Click="OnContextMenusForSettingsClick" Header="{DynamicResource flowlauncher_settings}">
|
|
<MenuItem.Icon>
|
|
<ui:FontIcon Glyph="" />
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
<MenuItem Command="{Binding EscCommand}" Header="{DynamicResource closeWindow}">
|
|
<MenuItem.Icon>
|
|
<ui:FontIcon Glyph="" />
|
|
</MenuItem.Icon>
|
|
</MenuItem>
|
|
</ContextMenu>
|
|
</TextBox.ContextMenu>
|
|
</TextBox>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<StackPanel
|
|
x:Name="ClockPanel"
|
|
IsHitTestVisible="False"
|
|
Opacity="{Binding ClockPanelOpacity}"
|
|
Style="{DynamicResource ClockPanel}"
|
|
Visibility="{Binding ClockPanelVisibility}">
|
|
<TextBlock
|
|
x:Name="ClockBox"
|
|
Style="{DynamicResource ClockBox}"
|
|
Text="{Binding ClockText}"
|
|
Visibility="{Binding Settings.UseClock, Converter={StaticResource BoolToVisibilityConverter}}" />
|
|
<TextBlock
|
|
x:Name="DateBox"
|
|
Style="{DynamicResource DateBox}"
|
|
Text="{Binding DateText}"
|
|
Visibility="{Binding Settings.UseDate, Converter={StaticResource BoolToVisibilityConverter}}" />
|
|
</StackPanel>
|
|
<Border>
|
|
<Grid WindowChrome.IsHitTestVisibleInChrome="True">
|
|
<Image
|
|
x:Name="PluginActivationIcon"
|
|
HorizontalAlignment="Right"
|
|
VerticalAlignment="Center"
|
|
Panel.ZIndex="2"
|
|
RenderOptions.BitmapScalingMode="HighQuality"
|
|
Source="{Binding PluginIconSource}"
|
|
Stretch="Uniform"
|
|
Style="{DynamicResource PluginActivationIcon}" />
|
|
<Canvas Style="{DynamicResource SearchIconPosition}">
|
|
<Path
|
|
Name="SearchIcon"
|
|
Margin="0"
|
|
Data="{DynamicResource SearchIconImg}"
|
|
Opacity="{Binding SearchIconOpacity}"
|
|
Stretch="Fill"
|
|
Style="{DynamicResource SearchIconStyle}"
|
|
Visibility="{Binding SearchIconVisibility}" />
|
|
</Canvas>
|
|
</Grid>
|
|
</Border>
|
|
<Line
|
|
x:Name="ProgressBar"
|
|
Width="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}, Path=ActualWidth}"
|
|
Height="2"
|
|
Margin="12 0 12 0"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Bottom"
|
|
StrokeThickness="2"
|
|
Visibility="{Binding ProgressBarVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
|
X1="-100"
|
|
X2="0"
|
|
Y1="0"
|
|
Y2="0" />
|
|
</Grid>
|
|
|
|
<Grid x:Name="MiddleSeparatorArea" ClipToBounds="True">
|
|
<ContentControl>
|
|
<ContentControl.Style>
|
|
<Style TargetType="ContentControl">
|
|
<Setter Property="Visibility" Value="Visible" />
|
|
<Style.Triggers>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding ElementName=ResultListBox, Path=Items.Count}" Value="0" />
|
|
<Condition Binding="{Binding ElementName=ResultContextMenu, Path=Visibility}" Value="Collapsed" />
|
|
<Condition Binding="{Binding ElementName=History, Path=Visibility}" Value="Collapsed" />
|
|
</MultiDataTrigger.Conditions>
|
|
<MultiDataTrigger.Setters>
|
|
<Setter Property="Visibility" Value="Collapsed" />
|
|
<Setter Property="Margin" Value="0" />
|
|
<Setter Property="Height" Value="0" />
|
|
</MultiDataTrigger.Setters>
|
|
</MultiDataTrigger>
|
|
</Style.Triggers>
|
|
<!--<Style.Triggers>
|
|
<DataTrigger Binding="{Binding ElementName=ResultListBox, Path=Visibility}" Value="Visible">
|
|
<Setter Property="Visibility" Value="Visible" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding ElementName=ResultContextMenu, Path=Visibility}" Value="Visible">
|
|
<Setter Property="Visibility" Value="Visible" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding ElementName=History, Path=Visibility}" Value="Visible">
|
|
<Setter Property="Visibility" Value="Visible" />
|
|
</DataTrigger>
|
|
</Style.Triggers>-->
|
|
</Style>
|
|
</ContentControl.Style>
|
|
<Rectangle
|
|
Name="MiddleSeparator"
|
|
Width="Auto"
|
|
HorizontalAlignment="Stretch"
|
|
Style="{DynamicResource SeparatorStyle}" />
|
|
</ContentControl>
|
|
</Grid>
|
|
|
|
<Border x:Name="ResultPreviewAreaBoarder" Style="{DynamicResource WindowRadius}">
|
|
<Border.Clip>
|
|
<MultiBinding Converter="{StaticResource BorderClipConverter}">
|
|
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}" />
|
|
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}" />
|
|
<Binding Path="CornerRadius" RelativeSource="{RelativeSource Self}" />
|
|
</MultiBinding>
|
|
</Border.Clip>
|
|
|
|
<Grid x:Name="ResultPreviewArea">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" MinWidth="80" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="0.85*" MinWidth="244" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<StackPanel
|
|
x:Name="ResultArea"
|
|
Grid.Column="0"
|
|
Grid.ColumnSpan="{Binding ResultAreaColumn}">
|
|
<ContentControl>
|
|
<flowlauncher:ResultListBox
|
|
x:Name="ResultListBox"
|
|
DataContext="{Binding Results}"
|
|
LeftClickResultCommand="{Binding LeftClickResultCommand}"
|
|
RightClickResultCommand="{Binding RightClickResultCommand}" />
|
|
</ContentControl>
|
|
<ContentControl>
|
|
<flowlauncher:ResultListBox
|
|
x:Name="ResultContextMenu"
|
|
DataContext="{Binding ContextMenu}"
|
|
LeftClickResultCommand="{Binding LeftClickResultCommand}"
|
|
RightClickResultCommand="{Binding RightClickResultCommand}" />
|
|
</ContentControl>
|
|
<ContentControl>
|
|
<flowlauncher:ResultListBox
|
|
x:Name="History"
|
|
DataContext="{Binding History}"
|
|
LeftClickResultCommand="{Binding LeftClickResultCommand}"
|
|
RightClickResultCommand="{Binding RightClickResultCommand}" />
|
|
</ContentControl>
|
|
</StackPanel>
|
|
|
|
<GridSplitter
|
|
x:Name="PreviewMiddleSeparator"
|
|
Grid.Column="1"
|
|
Margin="0"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Stretch"
|
|
Background="Transparent"
|
|
ShowsPreview="True"
|
|
Visibility="{Binding InternalPreviewVisible, Converter={StaticResource BoolToVisibilityConverter}}">
|
|
<GridSplitter.Template>
|
|
<ControlTemplate TargetType="{x:Type GridSplitter}">
|
|
<Border Style="{DynamicResource PreviewBorderStyle}" />
|
|
</ControlTemplate>
|
|
</GridSplitter.Template>
|
|
</GridSplitter>
|
|
|
|
<Grid
|
|
x:Name="Preview"
|
|
Grid.Column="2"
|
|
VerticalAlignment="Stretch"
|
|
Style="{DynamicResource PreviewArea}"
|
|
Visibility="{Binding InternalPreviewVisible, Converter={StaticResource BoolToVisibilityConverter}}">
|
|
<Border
|
|
MinHeight="380"
|
|
d:DataContext="{d:DesignInstance vm:ResultViewModel}"
|
|
DataContext="{Binding PreviewSelectedItem, Mode=OneWay}"
|
|
Visibility="{Binding ShowDefaultPreview}">
|
|
<Grid
|
|
Margin="0 0 10 5"
|
|
VerticalAlignment="Stretch"
|
|
Background="Transparent">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<Grid Grid.Row="0" VerticalAlignment="Center">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<TextBlock
|
|
x:Name="PreviewGlyphIcon"
|
|
Grid.Row="0"
|
|
Height="Auto"
|
|
Margin="0 16 0 0"
|
|
FontFamily="{Binding Glyph.FontFamily}"
|
|
Style="{DynamicResource PreviewGlyph}"
|
|
Text="{Binding Glyph.Glyph}"
|
|
Visibility="{Binding ShowGlyph}" />
|
|
<Image
|
|
x:Name="PreviewImageIcon"
|
|
Grid.Row="0"
|
|
MaxHeight="320"
|
|
Margin="0 16 0 0"
|
|
HorizontalAlignment="Center"
|
|
Source="{Binding PreviewImage}"
|
|
StretchDirection="DownOnly"
|
|
Visibility="{Binding ShowPreviewImage}">
|
|
<Image.Style>
|
|
<Style TargetType="{x:Type Image}">
|
|
<Setter Property="MaxWidth" Value="96" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding UseBigThumbnail}" Value="True">
|
|
<Setter Property="MaxWidth" Value="{Binding ElementName=Preview, Path=ActualWidth}" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</Image.Style>
|
|
</Image>
|
|
<TextBlock
|
|
x:Name="PreviewTitle"
|
|
Grid.Row="1"
|
|
Margin="0 6 0 16"
|
|
HorizontalAlignment="Stretch"
|
|
Style="{DynamicResource PreviewItemTitleStyle}"
|
|
Text="{Binding Result.Title}"
|
|
TextAlignment="Center"
|
|
TextWrapping="Wrap" />
|
|
</Grid>
|
|
<StackPanel Grid.Row="1">
|
|
<StackPanel.Style>
|
|
<Style TargetType="{x:Type StackPanel}">
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding ElementName=PreviewSubTitle, UpdateSourceTrigger=PropertyChanged, Path=Text.Length}" Value="0">
|
|
<Setter Property="Visibility" Value="Collapsed" />
|
|
</DataTrigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
</StackPanel.Style>
|
|
<Separator Style="{DynamicResource PreviewSep}" />
|
|
<TextBlock
|
|
x:Name="PreviewSubTitle"
|
|
Style="{DynamicResource PreviewItemSubTitleStyle}"
|
|
Text="{Binding PreviewDescription}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
<Border
|
|
MinHeight="380"
|
|
MaxHeight="{Binding ElementName=ResultListBox, Path=ActualHeight}"
|
|
Padding="0 0 10 10"
|
|
Visibility="{Binding ShowCustomizedPreview}">
|
|
<ContentControl Content="{Binding CustomizedPreviewControl}" />
|
|
</Border>
|
|
</Grid>
|
|
</Grid>
|
|
</Border>
|
|
</StackPanel>
|
|
</Border>
|
|
</Window>
|