/ src / modules / PowerOCR / PowerOCR / OCROverlay.xaml
OCROverlay.xaml
  1  <Window
  2      x:Class="PowerOCR.OCROverlay"
  3      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  7      xmlns:p="clr-namespace:PowerOCR.Properties"
  8      xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
  9      x:Name="TextExtractorWindow"
 10      Title="TextExtractor"
 11      ui:Design.Background="Transparent"
 12      AllowsTransparency="True"
 13      Background="Transparent"
 14      Loaded="Window_Loaded"
 15      ResizeMode="NoResize"
 16      ShowActivated="False"
 17      ShowInTaskbar="False"
 18      Topmost="True"
 19      Unloaded="Window_Unloaded"
 20      WindowStartupLocation="Manual"
 21      WindowState="Normal"
 22      WindowStyle="None"
 23      mc:Ignorable="d">
 24  
 25      <Window.Resources>
 26          <Style BasedOn="{StaticResource DefaultToggleButtonStyle}" TargetType="{x:Type ToggleButton}">
 27              <Setter Property="Margin" Value="4,0" />
 28              <Setter Property="Padding" Value="0" />
 29              <Setter Property="BorderBrush" Value="Transparent" />
 30              <Setter Property="Width" Value="32" />
 31              <Setter Property="Height" Value="32" />
 32              <Setter Property="Background" Value="Transparent" />
 33          </Style>
 34  
 35          <Style BasedOn="{StaticResource DefaultButtonStyle}" TargetType="{x:Type Button}">
 36              <Setter Property="Margin" Value="4,0" />
 37              <Setter Property="BorderBrush" Value="Transparent" />
 38              <Setter Property="Padding" Value="0" />
 39              <Setter Property="Width" Value="32" />
 40              <Setter Property="Height" Value="32" />
 41              <Setter Property="Background" Value="Transparent" />
 42          </Style>
 43      </Window.Resources>
 44  
 45      <Grid>
 46          <Viewbox>
 47              <Image x:Name="BackgroundImage" Stretch="UniformToFill" />
 48          </Viewbox>
 49          <Canvas
 50              Name="RegionClickCanvas"
 51              Cursor="Cross"
 52              MouseDown="RegionClickCanvas_MouseDown"
 53              MouseMove="RegionClickCanvas_MouseMove"
 54              MouseUp="RegionClickCanvas_MouseUp">
 55              <Canvas.Clip>
 56                  <CombinedGeometry GeometryCombineMode="Exclude">
 57                      <CombinedGeometry.Geometry1>
 58                          <RectangleGeometry x:Name="FullWindow" />
 59                      </CombinedGeometry.Geometry1>
 60                      <CombinedGeometry.Geometry2>
 61                          <RectangleGeometry x:Name="clippingGeometry" />
 62                      </CombinedGeometry.Geometry2>
 63                  </CombinedGeometry>
 64              </Canvas.Clip>
 65              <Canvas.Background>
 66                  <SolidColorBrush
 67                      x:Name="BackgroundBrush"
 68                      Opacity="0"
 69                      Color="Black" />
 70              </Canvas.Background>
 71              <Canvas.ContextMenu>
 72                  <ContextMenu x:Name="CanvasContextMenu">
 73                      <MenuItem
 74                          Name="SingleLineMenuItem"
 75                          Click="SingleLineMenuItem_Click"
 76                          Header="{x:Static p:Resources.ResultTextSingleLine}"
 77                          IsCheckable="True" />
 78                      <MenuItem
 79                          Name="TableMenuItem"
 80                          Click="TableToggleButton_Click"
 81                          Header="{x:Static p:Resources.ResultTextTable}"
 82                          IsCheckable="True" />
 83                      <Separator />
 84                      <MenuItem
 85                          Name="SettingsMenuItem"
 86                          Click="SettingsMenuItem_Click"
 87                          Header="{x:Static p:Resources.Settings}" />
 88                      <Separator />
 89                      <MenuItem
 90                          Name="CancelMenuItem"
 91                          AutomationProperties.AutomationId="CancelMenuItem"
 92                          Click="CancelMenuItem_Click"
 93                          Header="{x:Static p:Resources.Cancel}" />
 94                  </ContextMenu>
 95              </Canvas.ContextMenu>
 96          </Canvas>
 97          <Border
 98              x:Name="TopButtonsStackPanel"
 99              Margin="12"
100              Padding="4,8,4,8"
101              HorizontalAlignment="Center"
102              VerticalAlignment="Top"
103              d:Visibility="Visible"
104              Background="{DynamicResource ApplicationBackgroundBrush}"
105              CornerRadius="8"
106              Visibility="Collapsed">
107              <Border.Effect>
108                  <DropShadowEffect
109                      BlurRadius="32"
110                      Opacity="0.28"
111                      RenderingBias="Performance"
112                      ShadowDepth="1" />
113              </Border.Effect>
114  
115              <StackPanel
116                  HorizontalAlignment="Center"
117                  VerticalAlignment="Top"
118                  Orientation="Horizontal">
119                  <ComboBox
120                      x:Name="LanguagesComboBox"
121                      Margin="4,0"
122                      AutomationProperties.AutomationId="OCROverlayLanguagesComboBox"
123                      AutomationProperties.Name="{x:Static p:Resources.SelectedLang}"
124                      SelectionChanged="LanguagesComboBox_SelectionChanged">
125                      <ComboBox.ItemTemplate>
126                          <DataTemplate>
127                              <TextBlock
128                                  HorizontalAlignment="Left"
129                                  VerticalAlignment="Center"
130                                  Text="{Binding NativeName}" />
131                          </DataTemplate>
132                      </ComboBox.ItemTemplate>
133                  </ComboBox>
134                  <ToggleButton
135                      x:Name="SingleLineToggleButton"
136                      d:IsChecked="True"
137                      AutomationProperties.Name="{x:Static p:Resources.ResultTextSingleLine}"
138                      Click="SingleLineMenuItem_Click"
139                      IsChecked="{Binding IsChecked, ElementName=SingleLineMenuItem, Mode=TwoWay}"
140                      ToolTip="{x:Static p:Resources.ResultTextSingleLineShortcut}">
141                      <ui:SymbolIcon FontSize="18" Symbol="SubtractSquare24" />
142                  </ToggleButton>
143                  <ToggleButton
144                      x:Name="TableToggleButton"
145                      d:IsChecked="True"
146                      AutomationProperties.Name="{x:Static p:Resources.ResultTextTable}"
147                      Click="TableToggleButton_Click"
148                      IsChecked="{Binding IsChecked, ElementName=TableMenuItem, Mode=TwoWay}"
149                      ToolTip="{x:Static p:Resources.ResultTextTableShortcut}">
150                      <ui:SymbolIcon FontSize="18" Symbol="Table24" />
151                  </ToggleButton>
152                  <Button
153                      x:Name="SettingsButton"
154                      AutomationProperties.Name="{x:Static p:Resources.Settings}"
155                      Click="SettingsMenuItem_Click"
156                      ToolTip="{x:Static p:Resources.Settings}">
157                      <ui:SymbolIcon FontSize="18" Symbol="Settings24" />
158                  </Button>
159                  <Button
160                      x:Name="CancelButton"
161                      AutomationProperties.Name="{x:Static p:Resources.Cancel}"
162                      Click="CancelMenuItem_Click"
163                      ToolTip="{x:Static p:Resources.CancelShortcut}">
164                      <ui:SymbolIcon FontSize="18" Symbol="Dismiss24" />
165                  </Button>
166              </StackPanel>
167          </Border>
168      </Grid>
169  </Window>