feat: rebrand to MMD PDF, single corporate theme, and remove original text under an edit
- Services/PdfRedactText.cs: strip text whose origin falls inside a CoverAnnotation from the page content stream at save time, hooked into PdfBurn.DrawAnnotationsIntoDoc. Fixes edited values staying recoverable by text extraction. - Themes/MMD.xaml replaces all thirteen themes; picker and accent strip removed; no dark mode. - Rename KillerPDF -> MMD PDF across code, resources, packaging and locale strings; new icon. - Remove the upstream author credit and the in-app install button.
This commit is contained in:
+33
-171
@@ -1,12 +1,12 @@
|
||||
<Window x:Class="KillerPDF.MainWindow" Icon="pack://application:,,,/Resources/kp-icon.ico"
|
||||
<Window x:Class="MmdPdf.MainWindow" Icon="pack://application:,,,/Resources/mmd-icon.ico"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:KillerPDF"
|
||||
xmlns:ctrl="clr-namespace:KillerPDF.Controls"
|
||||
xmlns:local="clr-namespace:MmdPdf"
|
||||
xmlns:ctrl="clr-namespace:MmdPdf.Controls"
|
||||
mc:Ignorable="d"
|
||||
Title="KillerPDF" Height="700" Width="1000" MinHeight="480" MinWidth="620"
|
||||
Title="MMD PDF" Height="700" Width="1000" MinHeight="480" MinWidth="620"
|
||||
WindowStartupLocation="CenterScreen"
|
||||
WindowStyle="None"
|
||||
ResizeMode="CanResize"
|
||||
@@ -339,13 +339,13 @@
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
<!-- Inset overlay close: the KillerNotes about-card geometry. Unlike the main
|
||||
<!-- Inset overlay close: the MMD PDF about-card geometry. Unlike the main
|
||||
caption close, its hover face rounds on all four corners. -->
|
||||
<Style x:Key="DialogCloseButton" TargetType="Button" BasedOn="{StaticResource ChromeCloseButton}">
|
||||
<Setter Property="Tag" Value="{DynamicResource SmallCornerRadius}"/>
|
||||
</Style>
|
||||
|
||||
<!-- Shared close for the About and shortcuts cards (KillerScan is the family reference):
|
||||
<!-- Shared close for the About and shortcuts cards (MMD PDF is the family reference):
|
||||
a bare muted X that turns red on hover, no caption-style hover box. 98SE swaps the
|
||||
glyph, font, metrics, and colors through the AboutClose* theme keys. -->
|
||||
<Style x:Key="OverlayCloseButton" TargetType="Button">
|
||||
@@ -507,7 +507,7 @@
|
||||
</Style>
|
||||
|
||||
<!-- ============================================================
|
||||
Family flyout standard (from KillerUI Controls.xaml): the rail's theme and language
|
||||
Family flyout standard (from MmdPdfUI Controls.xaml): the rail's theme and language
|
||||
flyouts are ContextMenus whose chrome comes ONLY from FlyoutCard + FlyoutGrain, with
|
||||
PanelMenuItem stripping the MenuItem container for panel content. The grain tile's
|
||||
ImageSource is wired in code beside the document grain brushes (Shell/ContextMenu.cs).
|
||||
@@ -714,7 +714,7 @@
|
||||
<ControlTemplate.Triggers>
|
||||
<!-- SELECTION, not a gray wash. BgHover is #404040 in every theme, so
|
||||
the menu was the one place in the product where "this is the one"
|
||||
rendered in neutral gray - and KillerPDF is the app the others
|
||||
rendered in neutral gray - and MmdPdf is the app the others
|
||||
copy. Now the family's selected treatment: SelectionBg fill with
|
||||
SelectionFg text. The gesture and chevron are recolored too, as
|
||||
TextSecondary is unreadable on a saturated fill. -->
|
||||
@@ -1139,7 +1139,7 @@
|
||||
<RowDefinition Height="Auto"/> <!-- 1: toolbar -->
|
||||
<RowDefinition Height="Auto"/> <!-- 2: document tab strip (collapses when no PDF is open) -->
|
||||
<RowDefinition Height="*"/> <!-- 3: document content -->
|
||||
<RowDefinition Height="24"/> <!-- 4: footer / status bar (KillerNotes exact) -->
|
||||
<RowDefinition Height="24"/> <!-- 4: footer / status bar (MMD PDF exact) -->
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Title bar -->
|
||||
@@ -1165,24 +1165,24 @@
|
||||
MouseWheel="LogoBar_MouseWheel"
|
||||
MouseLeftButtonDown="LogoBar_MouseLeftButtonDown">
|
||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="{DynamicResource TitleBarPadding}">
|
||||
<Image Source="pack://application:,,,/Resources/kp-icon.png"
|
||||
<Image Source="pack://application:,,,/Resources/mmd-icon.png"
|
||||
Width="{DynamicResource TitleIconSize}" Height="{DynamicResource TitleIconSize}" Margin="{DynamicResource TitleIconMargin}" VerticalAlignment="Center"
|
||||
RenderOptions.BitmapScalingMode="HighQuality">
|
||||
<Image.Effect>
|
||||
<DropShadowEffect Color="Black" BlurRadius="4" ShadowDepth="2" Direction="270" Opacity="{DynamicResource IconShadowOpacity}"/>
|
||||
</Image.Effect>
|
||||
</Image>
|
||||
<TextBlock Text="KillerPDF" Visibility="{DynamicResource PlainTitleVisibility}"
|
||||
<TextBlock Text="MMD PDF" Visibility="{DynamicResource PlainTitleVisibility}"
|
||||
FontFamily="{DynamicResource ChromeFontFamily}" FontSize="11" FontWeight="Bold"
|
||||
Foreground="{DynamicResource ChromeTextBrush}" VerticalAlignment="Center"/>
|
||||
<Grid VerticalAlignment="Center" Visibility="{DynamicResource WordmarkVisibility}">
|
||||
<!-- Soft drop shadow: a blurred, offset copy behind the crisp wordmark -->
|
||||
<StackPanel Orientation="Horizontal" Margin="1,1,0,0" Opacity="{DynamicResource WordmarkShadowOpacity}">
|
||||
<StackPanel.Effect><BlurEffect Radius="2"/></StackPanel.Effect>
|
||||
<TextBlock><Run Text="Killer" FontFamily="{DynamicResource WordmarkFont}" FontSize="16.5" Foreground="#D8000000"/><Run Text="PDF" FontFamily="{DynamicResource WordmarkFontPdf}" FontWeight="Bold" FontSize="21.45" Foreground="#D8000000"/></TextBlock>
|
||||
<TextBlock><Run Text="MMD " FontFamily="{DynamicResource WordmarkFont}" FontSize="16.5" Foreground="#D8000000"/><Run Text="PDF" FontFamily="{DynamicResource WordmarkFontPdf}" FontWeight="Bold" FontSize="21.45" Foreground="#D8000000"/></TextBlock>
|
||||
</StackPanel>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock><Run Text="Killer" FontFamily="{DynamicResource WordmarkFont}" FontSize="16.5" Foreground="{DynamicResource TextBrush}"/><Run Text="PDF" FontFamily="{DynamicResource WordmarkFontPdf}" FontWeight="Bold" FontSize="21.45" Foreground="{DynamicResource AccentLogo}"/></TextBlock>
|
||||
<TextBlock><Run Text="MMD " FontFamily="{DynamicResource WordmarkFont}" FontSize="16.5" Foreground="{DynamicResource TextBrush}"/><Run Text="PDF" FontFamily="{DynamicResource WordmarkFontPdf}" FontWeight="Bold" FontSize="21.45" Foreground="{DynamicResource AccentLogo}"/></TextBlock>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
@@ -1405,7 +1405,7 @@
|
||||
from. Measured on the running app: the card's canvas is BgCanvas #3a3a3a (lum 58) and
|
||||
SurfaceBrush is #333333 (lum 51) - seven steps apart, so the 8px gutter read as the
|
||||
same gray as the card and the whole thing looked like one flat field with a hairline
|
||||
in it, shadow and all. KillerShell gets its lift from PaneBrush #3a3a3a on
|
||||
in it, shadow and all. MMD PDF gets its lift from PaneBrush #3a3a3a on
|
||||
BackgroundBrush #1c1c1c, thirty steps; this is the identical relationship, and it also
|
||||
matches the sidebar and footer, which already paint BackgroundBrush. The sidebar and
|
||||
the card both paint over this, so only the exposed gutter changes. -->
|
||||
@@ -1418,10 +1418,10 @@
|
||||
shrinks to 24px (the toggle strip width). -->
|
||||
<ColumnDefinition x:Name="SidebarCol" Width="180" MinWidth="24" MaxWidth="234"/>
|
||||
<!-- Was a 6px drag-handle column. The splitter has since moved INSIDE the sidebar
|
||||
(SidebarSplitter, Grid.Column 0, right-aligned, ZIndex 50 - the KillerNotes
|
||||
(SidebarSplitter, Grid.Column 0, right-aligned, ZIndex 50 - the MMD PDF
|
||||
pattern), so nothing lives here any more and the 6px was pure dead space
|
||||
between the rail and the document card. Killendar and KillerShell butt the
|
||||
card straight against the rail; this made KillerPDF's rail read ~7px wider
|
||||
between the rail and the document card. MMD PDF and MMD PDF butt the
|
||||
card straight against the rail; this made MmdPdf's rail read ~7px wider
|
||||
than the rest of the family. Kept as a zero column rather than deleted so
|
||||
DocCol stays index 2 and every Grid.Column in this grid, plus
|
||||
ApplySidebarSide, keeps working unchanged. -->
|
||||
@@ -1521,7 +1521,7 @@
|
||||
Foreground="{DynamicResource MutedTextBrush}"
|
||||
Margin="2,0,0,0"/>
|
||||
</DockPanel><!-- /PageControlsRow -->
|
||||
<!-- Scrollable page list (virtualized). As in KillerShell, the opacity mask
|
||||
<!-- Scrollable page list (virtualized). As in MMD PDF, the opacity mask
|
||||
fades the list itself so the real themed sidebar and grain remain visible
|
||||
behind it. SyncPageListEdgeFades drives the stops; 98SE makes the mask
|
||||
fully opaque because that theme deliberately has no edge fades. -->
|
||||
@@ -2086,138 +2086,11 @@
|
||||
</ContextMenu>
|
||||
</Button.ContextMenu>
|
||||
</Button>
|
||||
<Button x:Name="RailThemeBtn" Click="RailTheme_Click"
|
||||
Cursor="Hand" FocusVisualStyle="{x:Null}"
|
||||
ToolTip="{DynamicResource Str_Theme}"
|
||||
Width="24" Height="24" Padding="0" Margin="0,0,0,6">
|
||||
<Button.Template>
|
||||
<ControlTemplate TargetType="Button">
|
||||
<Border Background="Transparent">
|
||||
<TextBlock Text=""
|
||||
FontFamily="Segoe MDL2 Assets" FontSize="15"
|
||||
HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||
<TextBlock.Effect>
|
||||
<DropShadowEffect Color="Black" BlurRadius="4" ShadowDepth="2" Direction="270" Opacity="{DynamicResource IconShadowOpacity}"/>
|
||||
</TextBlock.Effect>
|
||||
<TextBlock.Style>
|
||||
<Style TargetType="TextBlock">
|
||||
<Setter Property="Foreground" Value="{DynamicResource TextBrush}"/>
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=Button}}" Value="True">
|
||||
<Setter Property="Foreground" Value="{DynamicResource PrimaryBrush}"/>
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</TextBlock.Style>
|
||||
</TextBlock>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Button.Template>
|
||||
<Button.ContextMenu>
|
||||
<ContextMenu x:Name="ThemeFlyout">
|
||||
<!-- Family flyout standard: chrome ONLY from FlyoutCard/FlyoutGrain, grain LAST. -->
|
||||
<ContextMenu.Template>
|
||||
<ControlTemplate TargetType="ContextMenu">
|
||||
<Border Style="{StaticResource FlyoutCard}">
|
||||
<Grid>
|
||||
<ItemsPresenter/>
|
||||
<Border Style="{StaticResource FlyoutGrain}"/>
|
||||
<Border Panel.ZIndex="1" IsHitTestVisible="False" CornerRadius="{DynamicResource FlyoutCornerRadius}" BorderBrush="{DynamicResource BevelLightBrush}" BorderThickness="{DynamicResource BevelLightThickness}"/>
|
||||
<Border Panel.ZIndex="1" IsHitTestVisible="False" CornerRadius="{DynamicResource FlyoutCornerRadius}" BorderBrush="{DynamicResource BevelDarkBrush}" BorderThickness="{DynamicResource BevelDarkThickness}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</ContextMenu.Template>
|
||||
<ContextMenu.ItemContainerStyle>
|
||||
<Style TargetType="MenuItem" BasedOn="{StaticResource PanelMenuItem}"/>
|
||||
</ContextMenu.ItemContainerStyle>
|
||||
<!-- #199 (Ryokoxx's design): the accent picker is a vertical STRIP beside the
|
||||
list, not rows inside it. The list is the same height on every theme, so
|
||||
the bottom-pinned card never moves; the strip animates its WIDTH toward
|
||||
the document side. Swatch colors are painted per family in code
|
||||
(PopulateAccentStrip). -->
|
||||
<Grid x:Name="ThemePickerLayout" Margin="12,10,3,10">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<StackPanel x:Name="ThemeSubmenu" Width="120" Grid.Column="0">
|
||||
<RadioButton x:Name="ThemeDarkRadio"
|
||||
Content="{DynamicResource Str_Theme_Dark}"
|
||||
GroupName="ThemeGroup"
|
||||
Style="{StaticResource ThemeRadio}"
|
||||
Checked="ThemeDarkRadio_Checked"/>
|
||||
<!-- Each family's picker sits under its own theme. The rows animate their HEIGHT
|
||||
(clipped), so when you switch, the old row shrinks while the new one grows by
|
||||
the same amount: the picker slides to the selected theme and the total menu
|
||||
height never changes. ROYGBIV order. -->
|
||||
<RadioButton x:Name="ThemeLightRadio"
|
||||
Content="{DynamicResource Str_Theme_Light}"
|
||||
GroupName="ThemeGroup"
|
||||
Style="{StaticResource ThemeRadio}"
|
||||
Checked="ThemeLightRadio_Checked"/>
|
||||
<RadioButton x:Name="ThemeHCRadio"
|
||||
Content="{DynamicResource Str_Theme_Black}"
|
||||
GroupName="ThemeGroup"
|
||||
Style="{StaticResource ThemeRadio}"
|
||||
Checked="ThemeHCRadio_Checked"/>
|
||||
<RadioButton x:Name="Theme98SERadio" Content="{DynamicResource Str_Theme_98SE}" GroupName="ThemeGroup" Style="{StaticResource ThemeRadio}" Checked="Theme98SERadio_Checked"/>
|
||||
<RadioButton x:Name="ThemeBloodRadio"
|
||||
Content="{DynamicResource Str_Theme_Blood}"
|
||||
GroupName="ThemeGroup"
|
||||
Style="{StaticResource ThemeRadio}"
|
||||
Checked="ThemeBloodRadio_Checked"/>
|
||||
<RadioButton x:Name="ThemeGreedRadio"
|
||||
Content="{DynamicResource Str_Theme_Greed}"
|
||||
GroupName="ThemeGroup"
|
||||
Style="{StaticResource ThemeRadio}"
|
||||
Checked="ThemeGreedRadio_Checked"/>
|
||||
<RadioButton x:Name="ThemeCyanoticRadio"
|
||||
Content="{DynamicResource Str_Theme_Cyanotic}"
|
||||
GroupName="ThemeGroup"
|
||||
Style="{StaticResource ThemeRadio}"
|
||||
Checked="ThemeCyanoticRadio_Checked"/>
|
||||
<RadioButton x:Name="ThemeEctoplasmRadio" Content="{DynamicResource Str_Theme_Ectoplasm}" GroupName="ThemeGroup" Style="{StaticResource ThemeRadio}" Checked="ThemeEctoplasmRadio_Checked"/>
|
||||
<RadioButton x:Name="ThemeDecayRadio" Content="{DynamicResource Str_Theme_Decay}" GroupName="ThemeGroup" Style="{StaticResource ThemeRadio}" Checked="ThemeDecayRadio_Checked"/>
|
||||
<RadioButton x:Name="ThemeMalaiseRadio" Content="{DynamicResource Str_Theme_Malaise}" GroupName="ThemeGroup" Style="{StaticResource ThemeRadio}" Checked="ThemeMalaiseRadio_Checked"/>
|
||||
<RadioButton x:Name="ThemeSepulchreRadio" Content="{DynamicResource Str_Theme_Sepulchre}" GroupName="ThemeGroup" Style="{StaticResource ThemeRadio}" Checked="ThemeSepulchreRadio_Checked"/>
|
||||
<RadioButton x:Name="ThemeDeliriumRadio" Content="{DynamicResource Str_Theme_Delirium}" GroupName="ThemeGroup" Style="{StaticResource ThemeRadio}" Checked="ThemeDeliriumRadio_Checked"/>
|
||||
<RadioButton x:Name="ThemeMourningRadio" Content="{DynamicResource Str_Theme_Mourning}" GroupName="ThemeGroup" Style="{StaticResource ThemeRadio}" Checked="ThemeMourningRadio_Checked"/>
|
||||
</StackPanel>
|
||||
<Grid x:Name="AccentStripHost" Grid.Column="1" Width="0" ClipToBounds="True">
|
||||
<Border x:Name="AccentStripDivider" Width="1" HorizontalAlignment="Left" Margin="0,6"
|
||||
Background="{DynamicResource MenuBorderBrush}"/>
|
||||
<!-- Six equal rows stretched over the list's full height: the swatches
|
||||
are tall pills, not dots, filling the vertical room the strip has.
|
||||
Height="Auto" clears the AccentDot style's fixed 18 so the rows
|
||||
size them; the 9px radius caps the 18px width into capsule ends
|
||||
(98SE's 0 keeps them square). -->
|
||||
<Grid x:Name="AccentStrip" Margin="7,6,2,6">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border x:Name="AccentStripDot0" Grid.Row="0" Style="{StaticResource AccentDot}" Width="26" Height="Auto" VerticalAlignment="Stretch" Margin="0,0,0,8" MouseLeftButtonUp="AccentStripDot_Click"/>
|
||||
<Border x:Name="AccentStripDot1" Grid.Row="1" Style="{StaticResource AccentDot}" Width="26" Height="Auto" VerticalAlignment="Stretch" Margin="0,0,0,8" MouseLeftButtonUp="AccentStripDot_Click"/>
|
||||
<Border x:Name="AccentStripDot2" Grid.Row="2" Style="{StaticResource AccentDot}" Width="26" Height="Auto" VerticalAlignment="Stretch" Margin="0,0,0,8" MouseLeftButtonUp="AccentStripDot_Click"/>
|
||||
<Border x:Name="AccentStripDot3" Grid.Row="3" Style="{StaticResource AccentDot}" Width="26" Height="Auto" VerticalAlignment="Stretch" Margin="0,0,0,8" MouseLeftButtonUp="AccentStripDot_Click"/>
|
||||
<Border x:Name="AccentStripDot4" Grid.Row="4" Style="{StaticResource AccentDot}" Width="26" Height="Auto" VerticalAlignment="Stretch" Margin="0,0,0,8" MouseLeftButtonUp="AccentStripDot_Click"/>
|
||||
<Border x:Name="AccentStripDot5" Grid.Row="5" Style="{StaticResource AccentDot}" Width="26" Height="Auto" VerticalAlignment="Stretch" Margin="0" MouseLeftButtonUp="AccentStripDot_Click"/>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</ContextMenu>
|
||||
</Button.ContextMenu>
|
||||
</Button>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- RESIZE GRIP - KillerShell's TreeResizeGrip, verbatim in shape and reasoning.
|
||||
<!-- RESIZE GRIP - MMD PDF's TreeResizeGrip, verbatim in shape and reasoning.
|
||||
A Thumb rather than a GridSplitter: a splitter resizes the two columns either side
|
||||
of it, and this handle's neighbor is the 24px rail, which must never move. Driving
|
||||
SidebarCol's width by hand lets the document column absorb the change instead, and
|
||||
@@ -2241,7 +2114,7 @@
|
||||
<Thumb.Template>
|
||||
<ControlTemplate TargetType="Thumb">
|
||||
<!-- Transparent, not empty: a Border with no Background is not hit-testable
|
||||
and the grip would be unusable (KillerShell's note). -->
|
||||
and the grip would be unusable (MMD PDF's note). -->
|
||||
<Border Background="Transparent">
|
||||
<Border x:Name="line" Width="1" HorizontalAlignment="Center"
|
||||
Background="{DynamicResource CardBorderBrush}" Margin="0,12" Opacity="0"/>
|
||||
@@ -2296,7 +2169,7 @@
|
||||
line with no border, so there is no corner to join and a cap would draw a stray
|
||||
rule across the gap. -->
|
||||
<!-- Document pane: row 1 of the document column.
|
||||
A lifted card, matching KillerShell's ResultsPane and the rest of the family:
|
||||
A lifted card, matching MMD PDF's ResultsPane and the rest of the family:
|
||||
RadCard corners, 1px pane border, PaneShadow cast DOWN over the footer, and an
|
||||
8px inset on the outer side (ApplySidebarSide moves the inset to whichever side
|
||||
the document is on). No bottom margin - a DropShadowEffect draws outside the
|
||||
@@ -2326,7 +2199,7 @@
|
||||
TWO HANDLES, not one. Whichever you grab is the pane you are sizing: the left handle
|
||||
sits on A's inner edge, the right on B's. Both clamp against BOTH minimums, so
|
||||
neither pane can be squeezed below MinPaneWidth from either side. Deliberately not
|
||||
KillerShell's single PaneSplitV. -->
|
||||
MMD PDF's single PaneSplitV. -->
|
||||
<!-- RowSpan 2: each pane contains its own tab strip in its first row, so the panes have
|
||||
to occupy the row a window-level tab band would use. The -1 top margin lives on the
|
||||
card INSIDE the control, since it tucks the card under that pane's own strip. -->
|
||||
@@ -2370,7 +2243,7 @@
|
||||
painted over by it: root-grid children all default to 0 and ties break on declaration
|
||||
order, and this is declared after MainContentGrid. Pushing the footer down rather than
|
||||
lifting the content keeps the About overlay - declared later still - on top of both.
|
||||
(Family rule; see KillerShell and Killendar.) -->
|
||||
(Family rule; see MMD PDF and MMD PDF.) -->
|
||||
<Border Grid.Row="4" x:Name="FooterBorder" Panel.ZIndex="-1"
|
||||
Background="{DynamicResource BackgroundBrush}">
|
||||
<Grid>
|
||||
@@ -2406,17 +2279,6 @@
|
||||
<Grid x:Name="PortableBadge" Grid.Column="0" Grid.ColumnSpan="3" Panel.ZIndex="3"
|
||||
HorizontalAlignment="Left" VerticalAlignment="Center"
|
||||
Visibility="Collapsed">
|
||||
<Button x:Name="InstallBtn" Content="{DynamicResource Str_InstallBtn}"
|
||||
Click="Install_Click" Style="{StaticResource OutlineButton}"
|
||||
FontFamily="{DynamicResource UiFont}" FontSize="10"
|
||||
Padding="8,1"
|
||||
VerticalAlignment="Center">
|
||||
<!-- The footer action is deliberately a plain rectangle even in themes
|
||||
whose larger dialog controls use rounded corners. -->
|
||||
<Button.Resources>
|
||||
<CornerRadius x:Key="ControlCornerRadius">0</CornerRadius>
|
||||
</Button.Resources>
|
||||
</Button>
|
||||
</Grid>
|
||||
<Grid Grid.Column="2" HorizontalAlignment="Right" Margin="{DynamicResource FooterCellMargin}">
|
||||
<Border IsHitTestVisible="False" BorderBrush="{DynamicResource FooterBevelDarkBrush}" BorderThickness="{DynamicResource FooterCellLightThickness}" Panel.ZIndex="2"/>
|
||||
@@ -2435,7 +2297,7 @@
|
||||
<Hyperlink NavigateUri="https://thekiller.net"
|
||||
RequestNavigate="Hyperlink_RequestNavigate"
|
||||
Foreground="{DynamicResource TextFooter}" TextDecorations="None">
|
||||
<Run Text="Steve the Killer"/>
|
||||
<Run Text="MMD Steel Group IT"/>
|
||||
</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
@@ -2532,7 +2394,7 @@
|
||||
<Border Grid.RowSpan="2" Panel.ZIndex="1" IsHitTestVisible="False" BorderBrush="{DynamicResource BevelLightBrush}" BorderThickness="{DynamicResource BevelLightThickness}"/>
|
||||
<Border Grid.RowSpan="2" Panel.ZIndex="1" IsHitTestVisible="False" BorderBrush="{DynamicResource BevelDarkBrush}" BorderThickness="{DynamicResource BevelDarkThickness}"/>
|
||||
<Border Grid.RowSpan="2" CornerRadius="{DynamicResource FlyoutCornerRadius}" IsHitTestVisible="False" Opacity="{DynamicResource GrainOpacity}" Background="{StaticResource GrainBrushShared}"/>
|
||||
<!-- Modern close follows the KillerNotes shortcut card: it is anchored to the
|
||||
<!-- Modern close follows the MMD PDF shortcut card: it is anchored to the
|
||||
card itself, not pushed inward by the content padding. -->
|
||||
<Button Grid.RowSpan="2" Click="ShortcutOverlayClose_Click"
|
||||
HorizontalAlignment="Right" VerticalAlignment="Top"
|
||||
@@ -2557,7 +2419,7 @@
|
||||
CanContentScroll="False">
|
||||
<StackPanel Margin="18,14,18,18">
|
||||
<Grid Margin="0,0,0,12">
|
||||
<!-- Family overlay title, KillerShell's SectionHeader recipe: Consolas 13
|
||||
<!-- Family overlay title, MMD PDF's SectionHeader recipe: Consolas 13
|
||||
SemiBold in PrimaryBrush. HeaderLineBrush was the rule color, dark on
|
||||
dark and unreadable, and the shadow rasterized the text. -->
|
||||
<TextBlock Text="{DynamicResource Str_KS_Title}"
|
||||
@@ -2593,7 +2455,7 @@
|
||||
<StackPanel x:Name="ShortcutKeyboardHost" Visibility="Collapsed"/>
|
||||
<TextBlock HorizontalAlignment="Right" Margin="0,14,0,0" FontFamily="Consolas" FontSize="11">
|
||||
<Hyperlink Click="OnlineHelp_Click" Foreground="{DynamicResource PrimaryBrush}"
|
||||
ToolTip="https://killerpdf.net/help.html"><Run Text="{DynamicResource Str_KS_OnlineHelp}"/></Hyperlink>
|
||||
ToolTip="https://baobab-ts.com/help.html"><Run Text="{DynamicResource Str_KS_OnlineHelp}"/></Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
@@ -2630,7 +2492,7 @@
|
||||
<Border Grid.Row="0" Height="{DynamicResource DialogTitleBarHeight}" Background="{DynamicResource DialogTitleBarBrush}"
|
||||
Visibility="{DynamicResource AboutCaptionVisibility}">
|
||||
<Grid Margin="5,0,2,0">
|
||||
<TextBlock Text="KillerPDF" VerticalAlignment="Center" FontFamily="{DynamicResource ChromeFontFamily}"
|
||||
<TextBlock Text="MMD PDF" VerticalAlignment="Center" FontFamily="{DynamicResource ChromeFontFamily}"
|
||||
FontSize="11" FontWeight="Bold" Foreground="{DynamicResource ChromeTextBrush}"/>
|
||||
<Button Click="AboutOverlayClose_Click" HorizontalAlignment="Right" VerticalAlignment="Center"
|
||||
Width="{DynamicResource AboutCloseWidth}" Height="{DynamicResource AboutCloseHeight}"
|
||||
@@ -2646,9 +2508,9 @@
|
||||
</Border>
|
||||
<Grid Grid.Row="1" Margin="18,10,18,18">
|
||||
<StackPanel Margin="0">
|
||||
<!-- Header: bloody KillerPDF icon to the left of the title + tagline.
|
||||
<!-- Header: bloody MmdPdf icon to the left of the title + tagline.
|
||||
A Grid (not a horizontal StackPanel) so the text column is bounded and the
|
||||
tagline wraps to fill two lines (same pattern as KillerScan's About).
|
||||
tagline wraps to fill two lines (same pattern as MMD PDF's About).
|
||||
Width is pinned to the info panel below, so the card's width is still
|
||||
determined by the SHA256 line - never by the tagline text. -->
|
||||
<Grid Margin="0,4,0,14" Width="{Binding ActualWidth, ElementName=AboutInfoGrid}">
|
||||
@@ -2656,7 +2518,7 @@
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image Grid.Column="0" Source="pack://application:,,,/Resources/kp-icon.png"
|
||||
<Image Grid.Column="0" Source="pack://application:,,,/Resources/mmd-icon.png"
|
||||
Width="58" Height="58" Margin="0,0,15,0"
|
||||
VerticalAlignment="Center"
|
||||
RenderOptions.BitmapScalingMode="HighQuality">
|
||||
@@ -2668,7 +2530,7 @@
|
||||
<!-- Logo (populated in code-behind), with a soft layered shadow -->
|
||||
<Grid Margin="0,0,0,4">
|
||||
<!-- Shadow copy populated in code-behind (BuildAboutLogo) with the SAME
|
||||
runs as the real wordmark. A static flat-size "KillerPDF" here sat
|
||||
runs as the real wordmark. A static flat-size "MmdPdf" here sat
|
||||
at different metrics than the two-run logo and read as a long smear
|
||||
floating above the word instead of a shadow behind it. -->
|
||||
<TextBlock x:Name="AboutLogoShadowBlock"
|
||||
@@ -2819,7 +2681,7 @@
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
<!-- Modern close: anchored to the CARD's corner (root grid), not pushed inward by
|
||||
the content padding - KillerScan's geometry, taken as the reference. -->
|
||||
the content padding - MMD PDF's geometry, taken as the reference. -->
|
||||
<Button Grid.RowSpan="2" Click="AboutOverlayClose_Click"
|
||||
HorizontalAlignment="Right" VerticalAlignment="Top" Panel.ZIndex="7"
|
||||
Width="{DynamicResource AboutCloseWidth}" Height="{DynamicResource AboutCloseHeight}"
|
||||
|
||||
Reference in New Issue
Block a user