Files
kniip/src/Kniip/Editor/EditorWindow.xaml
T
2026-11-09 13:02:24 +01:00

445 lines
32 KiB
XML

<Window x:Class="Kniip.Editor.EditorWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Kniip.Editor"
Title="kniip" Width="1180" Height="780" MinWidth="760" MinHeight="420"
WindowStartupLocation="CenterScreen" Background="{StaticResource WindowBrush}"
FontFamily="Segoe UI" FontSize="13" UseLayoutRounding="True"
Icon="pack://application:,,,/AppIcon.ico"
AllowDrop="True" PreviewDragEnter="Window_PreviewDragOver" PreviewDragOver="Window_PreviewDragOver" PreviewDrop="Window_PreviewDrop">
<Window.Resources>
<local:CornerPreviewConverter x:Key="CornerPreview" />
<local:CursorIconConverter x:Key="CursorIcon" />
<!-- Dikte: stip die meegroeit met de lijndikte -->
<DataTemplate x:Key="ThicknessTemplate">
<StackPanel Orientation="Horizontal">
<Grid Width="16" Height="16" VerticalAlignment="Center">
<Ellipse x:Name="Dot" Fill="{StaticResource InkBrush}" Width="{Binding}" Height="{Binding}"
MinWidth="2" MinHeight="2" MaxWidth="15" MaxHeight="15"
HorizontalAlignment="Center" VerticalAlignment="Center" />
<Line x:Name="NoneLine" X1="3" Y1="13" X2="13" Y2="3" Stroke="#E81123" StrokeThickness="1.5" Visibility="Collapsed" />
</Grid>
<TextBlock x:Name="Label" Text="{Binding StringFormat={}{0} px}" Margin="8,0,0,0" VerticalAlignment="Center" FontSize="12" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding}" Value="0">
<Setter TargetName="Dot" Property="Visibility" Value="Collapsed" />
<Setter TargetName="NoneLine" Property="Visibility" Value="Visible" />
<Setter TargetName="Label" Property="Text" Value="Geen" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ComboBoxItem}}" Value="{x:Null}">
<Setter TargetName="Label" Property="Visibility" Value="Collapsed" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
<!-- Lijnstijl: voorbeeldlijn -->
<DataTemplate x:Key="DashTemplate">
<StackPanel Orientation="Horizontal">
<Line x:Name="Sample" X1="1" Y1="8" X2="35" Y2="8" Width="36" Height="16" Stroke="{StaticResource InkBrush}"
StrokeThickness="2" VerticalAlignment="Center" />
<TextBlock x:Name="Label" Text="Doorgetrokken" Margin="8,0,0,0" VerticalAlignment="Center" FontSize="12" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Static local:LineDash.Dash}">
<Setter TargetName="Sample" Property="StrokeDashArray" Value="3 2" />
<Setter TargetName="Label" Property="Text" Value="Gestreept" />
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="{x:Static local:LineDash.Dot}">
<Setter TargetName="Sample" Property="StrokeDashArray" Value="0 2" />
<Setter TargetName="Sample" Property="StrokeDashCap" Value="Round" />
<Setter TargetName="Sample" Property="X1" Value="2" />
<Setter TargetName="Label" Property="Text" Value="Gestippeld" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ComboBoxItem}}" Value="{x:Null}">
<Setter TargetName="Label" Property="Visibility" Value="Collapsed" />
<Setter TargetName="Sample" Property="Width" Value="28" />
<Setter TargetName="Sample" Property="X2" Value="27" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
<!-- Hoeken: hoekje met de gekozen afronding -->
<DataTemplate x:Key="CornerTemplate">
<StackPanel Orientation="Horizontal">
<Grid Width="18" Height="18" VerticalAlignment="Center" ClipToBounds="True">
<Border Width="26" Height="26" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="2,2,0,0"
BorderBrush="{StaticResource InkBrush}" BorderThickness="2,2,0,0"
CornerRadius="{Binding Converter={StaticResource CornerPreview}}" />
</Grid>
<TextBlock x:Name="Label" Text="{Binding StringFormat={}{0} px}" Margin="8,0,0,0" VerticalAlignment="Center" FontSize="12" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding}" Value="0">
<Setter TargetName="Label" Property="Text" Value="Recht" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ComboBoxItem}}" Value="{x:Null}">
<Setter TargetName="Label" Property="Visibility" Value="Collapsed" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
<!-- Lettergrootte: "A" met het getal -->
<DataTemplate x:Key="FontSizeTemplate">
<StackPanel Orientation="Horizontal">
<TextBlock Text="A" FontSize="15" VerticalAlignment="Center" />
<TextBlock Text="{Binding}" FontSize="11" Margin="3,4,0,0" VerticalAlignment="Center" Foreground="{StaticResource SubtleTextBrush}" />
</StackPanel>
</DataTemplate>
<!-- Grootte (stappen, cursor): cirkel met het getal -->
<DataTemplate x:Key="SizeTemplate">
<StackPanel Orientation="Horizontal">
<Grid Width="16" Height="16" VerticalAlignment="Center">
<Ellipse Stroke="{StaticResource InkBrush}" StrokeThickness="1" />
<Path Data="M5,8 H11 M8,5 V11" Stroke="{StaticResource InkBrush}" StrokeThickness="1" />
</Grid>
<TextBlock Text="{Binding}" FontSize="11" Margin="4,0,0,0" VerticalAlignment="Center" Foreground="{StaticResource SubtleTextBrush}" />
</StackPanel>
</DataTemplate>
<!-- Stappenreeks: badge met het eerste teken -->
<DataTemplate x:Key="NumberingTemplate">
<StackPanel Orientation="Horizontal">
<Grid Width="18" Height="18" VerticalAlignment="Center">
<Ellipse Fill="#E81123" />
<TextBlock x:Name="Badge" Text="1" Foreground="White" FontSize="10"
HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
<TextBlock x:Name="Label" Text="1, 2, 3" Margin="8,0,0,0" VerticalAlignment="Center" FontSize="12" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Static local:StepNumbering.LowerAlpha}">
<Setter TargetName="Badge" Property="Text" Value="a" />
<Setter TargetName="Label" Property="Text" Value="a, b, c" />
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="{x:Static local:StepNumbering.UpperAlpha}">
<Setter TargetName="Badge" Property="Text" Value="A" />
<Setter TargetName="Label" Property="Text" Value="A, B, C" />
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="{x:Static local:StepNumbering.Roman}">
<Setter TargetName="Badge" Property="Text" Value="I" />
<Setter TargetName="Label" Property="Text" Value="I, II, III" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ComboBoxItem}}" Value="{x:Null}">
<Setter TargetName="Label" Property="Visibility" Value="Collapsed" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
<!-- Soort cursor: het cursoricoon zelf -->
<DataTemplate x:Key="CursorKindTemplate">
<StackPanel Orientation="Horizontal">
<Path Data="{Binding Converter={StaticResource CursorIcon}}" Fill="White" Stroke="{StaticResource InkBrush}"
StrokeThickness="1" StrokeLineJoin="Round" Stretch="Uniform" Width="16" Height="18" VerticalAlignment="Center" />
<TextBlock x:Name="Label" Text="Pijl" Margin="8,0,0,0" VerticalAlignment="Center" FontSize="12" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Static local:CursorKind.Click}">
<Setter TargetName="Label" Property="Text" Value="Pijl met klik" />
</DataTrigger>
<DataTrigger Binding="{Binding}" Value="{x:Static local:CursorKind.Hand}">
<Setter TargetName="Label" Property="Text" Value="Hand" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ComboBoxItem}}" Value="{x:Null}">
<Setter TargetName="Label" Property="Visibility" Value="Collapsed" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
<!-- Effect: pixelblokjes of zachte vlek -->
<DataTemplate x:Key="BlurModeTemplate">
<StackPanel Orientation="Horizontal">
<Grid Width="16" Height="16" VerticalAlignment="Center">
<Path x:Name="PixelIcon" Fill="{StaticResource InkBrush}"
Data="M1,1 h4.5 v4.5 h-4.5 z M10.5,1 h4.5 v4.5 h-4.5 z M5.75,5.75 h4.5 v4.5 h-4.5 z M1,10.5 h4.5 v4.5 h-4.5 z M10.5,10.5 h4.5 v4.5 h-4.5 z" />
<Ellipse x:Name="BlurIcon" Visibility="Collapsed">
<Ellipse.Fill>
<RadialGradientBrush>
<GradientStop Color="#FF1A1A1A" Offset="0" />
<GradientStop Color="#801A1A1A" Offset="0.5" />
<GradientStop Color="#001A1A1A" Offset="1" />
</RadialGradientBrush>
</Ellipse.Fill>
</Ellipse>
</Grid>
<TextBlock x:Name="Label" Text="Pixeleren" Margin="8,0,0,0" VerticalAlignment="Center" FontSize="12" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding}" Value="{x:Static local:BlurMode.Blur}">
<Setter TargetName="PixelIcon" Property="Visibility" Value="Collapsed" />
<Setter TargetName="BlurIcon" Property="Visibility" Value="Visible" />
<Setter TargetName="Label" Property="Text" Value="Vervagen" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType=ComboBoxItem}}" Value="{x:Null}">
<Setter TargetName="Label" Property="Visibility" Value="Collapsed" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</Window.Resources>
<DockPanel>
<!-- Statusbalk -->
<Border DockPanel.Dock="Bottom" Background="{StaticResource ToolbarBrush}" BorderBrush="{StaticResource DividerBrush}"
BorderThickness="0,1,0,0" Padding="12,4">
<DockPanel>
<TextBlock x:Name="InfoText" DockPanel.Dock="Right" Foreground="{StaticResource SubtleTextBrush}" FontSize="12" />
<TextBlock x:Name="HintText" Foreground="{StaticResource SubtleTextBrush}" FontSize="12" TextTrimming="CharacterEllipsis" />
</DockPanel>
</Border>
<!-- Gereedschappen en acties; rechtsklik voor vergrendelen, positie en zichtbare knoppen -->
<Border x:Name="Toolbar" DockPanel.Dock="Top" Background="{StaticResource ToolbarBrush}" BorderBrush="{StaticResource DividerBrush}"
BorderThickness="0,0,0,1" Padding="8,6" SizeChanged="Toolbar_SizeChanged" ContextMenuOpening="Toolbar_ContextMenuOpening">
<Border.ContextMenu>
<ContextMenu x:Name="ToolbarMenu" />
</Border.ContextMenu>
<local:ToolbarPanel x:Name="ToolbarItems" OrderChanged="ToolbarItems_OrderChanged">
<RadioButton GroupName="Tools" Tag="Select" local:ToolbarPanel.ItemId="Select" local:ToolbarPanel.Title="Selecteren"
Style="{StaticResource ToolToggle}" ToolTip="Selecteren en verplaatsen (V)" Checked="Tool_Checked">
<Path Style="{StaticResource IconPath}" Data="M5,2.5 L5,16.5 L8.6,13.2 L11,18.4 L13.3,17.4 L11,12.3 L15.8,12.3 Z" />
</RadioButton>
<local:ToolbarSeparator local:ToolbarPanel.ItemId="Sep1" />
<RadioButton GroupName="Tools" Tag="Rectangle" local:ToolbarPanel.ItemId="Rectangle" local:ToolbarPanel.Title="Rechthoek"
Style="{StaticResource ToolToggle}" ToolTip="Rechthoek (R) - Shift voor vierkant" Checked="Tool_Checked">
<Path Style="{StaticResource IconPath}" Data="M3,5 H17 V15 H3 Z" />
</RadioButton>
<RadioButton GroupName="Tools" Tag="Ellipse" local:ToolbarPanel.ItemId="Ellipse" local:ToolbarPanel.Title="Ellips"
Style="{StaticResource ToolToggle}" ToolTip="Ellips (E) - Shift voor cirkel" Checked="Tool_Checked">
<Path Style="{StaticResource IconPath}">
<Path.Data>
<EllipseGeometry Center="10,10" RadiusX="7.5" RadiusY="5.5" />
</Path.Data>
</Path>
</RadioButton>
<RadioButton GroupName="Tools" Tag="Line" local:ToolbarPanel.ItemId="Line" local:ToolbarPanel.Title="Lijn"
Style="{StaticResource ToolToggle}" ToolTip="Lijn (L) - Shift voor hoeken van 45°" Checked="Tool_Checked">
<Path Style="{StaticResource IconPath}" Data="M4,16 L16,4" />
</RadioButton>
<RadioButton GroupName="Tools" Tag="Arrow" local:ToolbarPanel.ItemId="Arrow" local:ToolbarPanel.Title="Pijl"
Style="{StaticResource ToolToggle}" ToolTip="Pijl (A) - Shift voor hoeken van 45°" Checked="Tool_Checked">
<Path Style="{StaticResource IconPath}" Data="M4,16 L15.5,4.5 M9,4.5 H15.5 V11" />
</RadioButton>
<RadioButton GroupName="Tools" Tag="Text" local:ToolbarPanel.ItemId="Text" local:ToolbarPanel.Title="Tekst"
Style="{StaticResource ToolToggle}" ToolTip="Tekst in kader (T)" Checked="Tool_Checked">
<Grid Width="20" Height="20">
<Path Style="{StaticResource IconPath}" Data="M2.5,4 H17.5 V16 H2.5 Z" />
<TextBlock Text="T" FontSize="11" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,1" />
</Grid>
</RadioButton>
<RadioButton GroupName="Tools" Tag="Step" local:ToolbarPanel.ItemId="Step" local:ToolbarPanel.Title="Stappen"
Style="{StaticResource ToolToggle}" ToolTip="Stappen 1, 2, 3 / a, b, c (S)" Checked="Tool_Checked">
<Grid Width="20" Height="20">
<Ellipse Width="17" Height="17" Fill="#E81123" />
<TextBlock Text="1" Foreground="White" FontSize="11" HorizontalAlignment="Center" VerticalAlignment="Center" />
</Grid>
</RadioButton>
<RadioButton GroupName="Tools" Tag="Cursor" local:ToolbarPanel.ItemId="Cursor" local:ToolbarPanel.Title="Cursor"
Style="{StaticResource ToolToggle}" ToolTip="Cursor plaatsen (C)" Checked="Tool_Checked">
<Path Style="{StaticResource IconPath}" Fill="White"
Data="M7,4 L7,16 L9.8,13.4 L11.7,17.6 L13.6,16.8 L11.8,12.6 L15.4,12.6 Z M4,4 L2.5,2.5 M7,1 L7,0 M4,7 L2,7" />
</RadioButton>
<RadioButton GroupName="Tools" Tag="Emoji" local:ToolbarPanel.ItemId="Emoji" local:ToolbarPanel.Title="Emoji"
Style="{StaticResource ToolToggle}" ToolTip="Emoji plaatsen (J)" Checked="Tool_Checked">
<TextBlock Text="&#xE76E;" Style="{StaticResource IconText}" />
</RadioButton>
<RadioButton GroupName="Tools" Tag="Highlight" local:ToolbarPanel.ItemId="Highlight" local:ToolbarPanel.Title="Markeerstift"
Style="{StaticResource ToolToggle}" ToolTip="Markeerstift (H) - rechte horizontale streep, Shift wisselt" Checked="Tool_Checked">
<Grid Width="20" Height="20">
<Rectangle Width="17" Height="7" Fill="#A0FFE600" VerticalAlignment="Center" />
<Path Style="{StaticResource IconPath}" Data="M2,10 H18" StrokeThickness="1" Stroke="#B39C00" Opacity="0.6" />
</Grid>
</RadioButton>
<RadioButton GroupName="Tools" Tag="Blur" local:ToolbarPanel.ItemId="Blur" local:ToolbarPanel.Title="Vervagen / pixeleren"
Style="{StaticResource ToolToggle}" ToolTip="Vervagen / pixeleren (B)" Checked="Tool_Checked">
<Path Style="{StaticResource IconPath}" Fill="#1A1A1A" StrokeThickness="0"
Data="M3,3 h4.5 v4.5 h-4.5 z M12.5,3 h4.5 v4.5 h-4.5 z M7.75,7.75 h4.5 v4.5 h-4.5 z M3,12.5 h4.5 v4.5 h-4.5 z M12.5,12.5 h4.5 v4.5 h-4.5 z" />
</RadioButton>
<local:ToolbarSeparator local:ToolbarPanel.ItemId="Sep2" />
<RadioButton GroupName="Tools" Tag="Crop" local:ToolbarPanel.ItemId="Crop" local:ToolbarPanel.Title="Bijsnijden"
Style="{StaticResource ToolToggle}" ToolTip="Bijsnijden (X)" Checked="Tool_Checked">
<TextBlock Text="&#xE7A8;" Style="{StaticResource IconText}" />
</RadioButton>
<local:ToolbarSpacer local:ToolbarPanel.ItemId="Spacer" />
<Button local:ToolbarPanel.ItemId="New" local:ToolbarPanel.Title="Nieuw knipsel"
Style="{StaticResource ProminentButton}" ToolTip="Knipsel wissen en een nieuw knipsel maken (Ctrl+N)" Click="NewSnip_Click">
<StackPanel Orientation="Horizontal">
<TextBlock Text="&#xE722;" Style="{StaticResource IconText}" />
<TextBlock x:Name="NewLabel" Text="Nieuw" FontSize="12" VerticalAlignment="Center" Margin="6,0,0,0" />
</StackPanel>
</Button>
<Button local:ToolbarPanel.ItemId="Screencast" local:ToolbarPanel.Title="Screencast"
Style="{StaticResource ProminentButton}" ToolTip="Screencast opnemen als MP4 of GIF" Click="Screencast_Click">
<StackPanel Orientation="Horizontal">
<TextBlock Text="&#xE714;" Style="{StaticResource IconText}" />
<TextBlock x:Name="ScreencastLabel" Text="Screencast" FontSize="12" VerticalAlignment="Center" Margin="6,0,0,0" />
</StackPanel>
</Button>
<!-- Wat tussen de twee spacers staat, komt in het midden van de werkbalk -->
<local:ToolbarSpacer local:ToolbarPanel.ItemId="Spacer2" />
<Button local:ToolbarPanel.ItemId="Clear" local:ToolbarPanel.Title="Wissen"
Style="{StaticResource FlatButton}" ToolTip="Knipsel weggooien en opnieuw beginnen met een leeg canvas (Ctrl+Delete)" Click="Clear_Click">
<StackPanel Orientation="Horizontal">
<TextBlock Text="&#xE894;" Style="{StaticResource IconText}" />
<TextBlock x:Name="ClearLabel" Text="Wissen" FontSize="12" VerticalAlignment="Center" Margin="6,0,0,0" />
</StackPanel>
</Button>
<local:ToolbarSeparator local:ToolbarPanel.ItemId="Sep3" />
<Button x:Name="UndoButton" local:ToolbarPanel.ItemId="Undo" local:ToolbarPanel.Title="Ongedaan maken"
Style="{StaticResource FlatButton}" ToolTip="Ongedaan maken (Ctrl+Z)" Click="Undo_Click">
<TextBlock Text="&#xE7A7;" Style="{StaticResource IconText}" />
</Button>
<Button x:Name="RedoButton" local:ToolbarPanel.ItemId="Redo" local:ToolbarPanel.Title="Opnieuw"
Style="{StaticResource FlatButton}" ToolTip="Opnieuw (Ctrl+Y)" Click="Redo_Click">
<TextBlock Text="&#xE7A6;" Style="{StaticResource IconText}" />
</Button>
<Button x:Name="DeleteButton" local:ToolbarPanel.ItemId="Delete" local:ToolbarPanel.Title="Verwijderen"
Style="{StaticResource FlatButton}" ToolTip="Geselecteerd object verwijderen (Delete)" Click="Delete_Click">
<TextBlock Text="&#xE74D;" Style="{StaticResource IconText}" />
</Button>
<local:ToolbarSeparator local:ToolbarPanel.ItemId="Sep4" />
<Button local:ToolbarPanel.ItemId="ZoomOut" local:ToolbarPanel.Title="Uitzoomen"
Style="{StaticResource FlatButton}" ToolTip="Uitzoomen (Ctrl+-)" Click="ZoomOut_Click">
<TextBlock Text="&#xE71F;" Style="{StaticResource IconText}" />
</Button>
<Button x:Name="ZoomButton" local:ToolbarPanel.ItemId="Zoom" local:ToolbarPanel.Title="Zoompercentage"
Style="{StaticResource FlatButton}" ToolTip="Passend maken (Ctrl+0) / werkelijke grootte (Ctrl+1)" Click="ZoomReset_Click" MinWidth="56">
<TextBlock x:Name="ZoomText" Text="100%" FontSize="12" />
</Button>
<Button local:ToolbarPanel.ItemId="ZoomIn" local:ToolbarPanel.Title="Inzoomen"
Style="{StaticResource FlatButton}" ToolTip="Inzoomen (Ctrl++)" Click="ZoomIn_Click">
<TextBlock Text="&#xE8A3;" Style="{StaticResource IconText}" />
</Button>
<local:ToolbarSeparator local:ToolbarPanel.ItemId="Sep5" />
<Button local:ToolbarPanel.ItemId="Settings" local:ToolbarPanel.Title="Instellingen"
Style="{StaticResource FlatButton}" ToolTip="Instellingen" Click="Settings_Click">
<TextBlock Text="&#xE713;" Style="{StaticResource IconText}" />
</Button>
<Button x:Name="SaveButton" local:ToolbarPanel.ItemId="Save" local:ToolbarPanel.Title="Opslaan"
Style="{StaticResource SecondaryButton}" ToolTip="Opslaan (Ctrl+S); Shift+klik of Ctrl+Shift+S = opslaan als" Click="Save_Click">
<StackPanel Orientation="Horizontal">
<TextBlock Text="&#xE74E;" Style="{StaticResource IconText}" FontSize="14" />
<TextBlock x:Name="SaveLabel" Text="Opslaan" Margin="6,0,0,0" />
</StackPanel>
</Button>
<Button x:Name="UploadButton" local:ToolbarPanel.ItemId="Upload" local:ToolbarPanel.Title="Uploaden"
Style="{StaticResource SecondaryButton}" ToolTip="Uploaden en de link kopiëren (Ctrl+U)" Click="Upload_Click" Margin="4,0,0,0">
<StackPanel Orientation="Horizontal">
<TextBlock Text="&#xE898;" Style="{StaticResource IconText}" FontSize="14" />
<TextBlock x:Name="UploadLabel" Text="Uploaden" Margin="6,0,0,0" />
</StackPanel>
</Button>
<Button local:ToolbarPanel.ItemId="Copy" local:ToolbarPanel.Title="Kopiëren"
Style="{StaticResource AccentButton}" ToolTip="Kopiëren naar klembord (Ctrl+C)" Click="Copy_Click" Margin="4,0,0,0">
<StackPanel Orientation="Horizontal">
<TextBlock Text="&#xE8C8;" Style="{StaticResource IconText}" FontSize="14" Foreground="White" />
<TextBlock x:Name="CopyLabel" Text="Kopiëren" Margin="6,0,0,0" />
</StackPanel>
</Button>
</local:ToolbarPanel>
</Border>
<!-- Eigenschappen van het actieve gereedschap of het geselecteerde object -->
<Border DockPanel.Dock="Top" Background="White" BorderBrush="{StaticResource DividerBrush}" BorderThickness="0,0,0,1"
Padding="12,4" MinHeight="42">
<WrapPanel x:Name="PropsPanel" VerticalAlignment="Center" HorizontalAlignment="Center">
<StackPanel x:Name="StrokeGroup" Style="{StaticResource PropGroup}">
<local:ColorPickerButton x:Name="StrokePicker" ShowAsOutline="True" ToolTip="Randkleur" />
</StackPanel>
<StackPanel x:Name="FillGroup" Style="{StaticResource PropGroup}">
<local:ColorPickerButton x:Name="FillPicker" AllowTransparent="True" ToolTip="Vulkleur" />
</StackPanel>
<StackPanel x:Name="ForegroundGroup" Style="{StaticResource PropGroup}">
<local:ColorPickerButton x:Name="ForegroundPicker" ShowAsText="True" ToolTip="Tekstkleur" />
</StackPanel>
<StackPanel x:Name="ThicknessGroup" Style="{StaticResource PropGroup}">
<ComboBox x:Name="ThicknessCombo" Style="{StaticResource MiniCombo}" ItemTemplate="{StaticResource ThicknessTemplate}"
ToolTip="Dikte" SelectionChanged="Thickness_Changed" />
</StackPanel>
<StackPanel x:Name="DashGroup" Style="{StaticResource PropGroup}">
<ComboBox x:Name="DashCombo" Style="{StaticResource MiniCombo}" ItemTemplate="{StaticResource DashTemplate}"
ToolTip="Lijnstijl" SelectionChanged="Dash_Changed" />
</StackPanel>
<StackPanel x:Name="CornerGroup" Style="{StaticResource PropGroup}">
<ComboBox x:Name="CornerCombo" Style="{StaticResource MiniCombo}" ItemTemplate="{StaticResource CornerTemplate}"
ToolTip="Hoeken" SelectionChanged="Corner_Changed" />
</StackPanel>
<StackPanel x:Name="FontGroup" Style="{StaticResource PropGroup}">
<ComboBox x:Name="FontSizeCombo" Style="{StaticResource MiniCombo}" ItemTemplate="{StaticResource FontSizeTemplate}"
ToolTip="Lettergrootte" SelectionChanged="FontSize_Changed" />
<ToggleButton x:Name="BoldToggle" Style="{StaticResource MiniToggle}" ToolTip="Vet" Checked="Bold_Changed" Unchecked="Bold_Changed">
<TextBlock Text="B" FontWeight="Bold" FontSize="13" />
</ToggleButton>
</StackPanel>
<StackPanel x:Name="NumberingGroup" Style="{StaticResource PropGroup}">
<ComboBox x:Name="NumberingCombo" Style="{StaticResource MiniCombo}" ItemTemplate="{StaticResource NumberingTemplate}"
ToolTip="Reeks" SelectionChanged="Numbering_Changed" />
</StackPanel>
<StackPanel x:Name="CursorGroup" Style="{StaticResource PropGroup}">
<ComboBox x:Name="CursorKindCombo" Style="{StaticResource MiniCombo}" ItemTemplate="{StaticResource CursorKindTemplate}"
ToolTip="Soort cursor" SelectionChanged="CursorKind_Changed" />
</StackPanel>
<StackPanel x:Name="EmojiGroup" Style="{StaticResource PropGroup}">
<local:EmojiPickerButton x:Name="EmojiPicker" />
</StackPanel>
<StackPanel x:Name="SizeGroup" Style="{StaticResource PropGroup}">
<ComboBox x:Name="SizeCombo" Style="{StaticResource MiniCombo}" ItemTemplate="{StaticResource SizeTemplate}"
ToolTip="Grootte" SelectionChanged="Size_Changed" />
</StackPanel>
<StackPanel x:Name="BlurGroup" Style="{StaticResource PropGroup}">
<ComboBox x:Name="BlurModeCombo" Style="{StaticResource MiniCombo}" ItemTemplate="{StaticResource BlurModeTemplate}"
ToolTip="Effect" SelectionChanged="BlurMode_Changed" />
<Border Background="White" BorderBrush="#E0E0E0" BorderThickness="1" CornerRadius="4" Height="30" Margin="2,0" Padding="8,0"
ToolTip="Sterkte">
<Slider x:Name="BlurStrengthSlider" Width="90" Minimum="1" Maximum="20" IsSnapToTickEnabled="True" TickFrequency="1"
VerticalAlignment="Center" ValueChanged="BlurStrength_Changed" />
</Border>
</StackPanel>
<StackPanel x:Name="StraightGroup" Style="{StaticResource PropGroup}">
<ToggleButton x:Name="StraightCheck" Style="{StaticResource MiniToggle}" ToolTip="Rechte horizontale streep (Shift wisselt)"
Checked="Straight_Changed" Unchecked="Straight_Changed">
<Path Data="M2,9 H16 M2,5 V13 M16,5 V13" Stroke="{StaticResource InkBrush}" StrokeThickness="1.5"
StrokeStartLineCap="Round" StrokeEndLineCap="Round" Width="18" Height="18" />
</ToggleButton>
</StackPanel>
<StackPanel x:Name="ShadowGroup" Style="{StaticResource PropGroup}">
<ToggleButton x:Name="ShadowCheck" Style="{StaticResource MiniToggle}" ToolTip="Schaduw"
Checked="Shadow_Changed" Unchecked="Shadow_Changed">
<Grid Width="18" Height="18">
<Rectangle Width="11" Height="11" RadiusX="2" RadiusY="2" Fill="#9A9A9A" Margin="5,5,0,0"
HorizontalAlignment="Left" VerticalAlignment="Top" />
<Rectangle Width="11" Height="11" RadiusX="2" RadiusY="2" Fill="White" Stroke="{StaticResource InkBrush}"
StrokeThickness="1" Margin="2,2,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" />
</Grid>
</ToggleButton>
</StackPanel>
<TextBlock x:Name="NoPropsText" Style="{StaticResource PropLabel}" VerticalAlignment="Center" />
</WrapPanel>
</Border>
<!-- Canvas -->
<ScrollViewer x:Name="Scroller" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"
Background="#E9E9E9" PreviewMouseWheel="Scroller_PreviewMouseWheel" Focusable="False">
<Grid HorizontalAlignment="Center" VerticalAlignment="Center" Margin="24">
<Border BorderBrush="#C8C8C8" BorderThickness="1" Margin="-1" SnapsToDevicePixels="True" />
<Grid x:Name="CanvasHost">
<Grid.LayoutTransform>
<ScaleTransform x:Name="ZoomTransform" />
</Grid.LayoutTransform>
<local:AnnotationSurface x:Name="Surface"
MouseLeftButtonDown="Surface_MouseLeftButtonDown"
MouseMove="Surface_MouseMove"
MouseLeftButtonUp="Surface_MouseLeftButtonUp"
MouseRightButtonUp="Surface_MouseRightButtonUp"
LostMouseCapture="Surface_LostMouseCapture" />
<Canvas x:Name="TextLayer" />
</Grid>
</Grid>
</ScrollViewer>
</DockPanel>
</Window>