Files
ShrlAlgoToolkit/NeuWPF/NeoUI/Controls/TextBoxContextMenu.xaml
2025-08-20 12:10:13 +08:00

75 lines
4.6 KiB
XML

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- 复制按钮 -->
<PathGeometry Figures="M15.75,19.5v1.56a.94.94,0,0,1-.94.94H4.19a.94.94,0,0,1-.94-.94 V6.69a.94.94,0,0,1,.94-.94H7V17.31A2.19,2.19,0,0,0,9.19,19.5Zm0-13.44 V2H9.19a.94.94,0,0,0-.94.94V17.31a.94.94,0,0,0,.94.94H19.81 a.94.94,0,0,0,.94-.94V7H16.69a.94.94,0,0,1-.94-.94Zm4.73-1.21L17.9,2.27 A1,1,0,0,0,17.24,2H17V5.75h3.75V5.51a1,1,0,0,0-.27-.66Z" x:Key="CopyIcon" />
<!-- 剪切按钮 -->
<PathGeometry Figures="M14.41,12l7.43-7.43a.54.54,0,0,0,0-.76,3.75,3.75,0,0,0-5.3,0 L11.38,9,10.27,7.86a4.14,4.14,0,0,0,.3-1.57,4.29,4.29,0,1,0-4.28,4.28, 3.81,3.81,0,0,0,.59,0L8.35,12,6.88,13.47a3.81,3.81,0,0,0-.59,0,4.29, 4.29,0,1,0,4.28,4.28,4.14,4.14,0,0,0-.3-1.57L11.38,15l5.16,5.16 a3.75,3.75,0,0,0,5.3,0,.54.54,0,0,0,0-.76L14.41,12ZM6.29,7.71 A1.43,1.43,0,1,1,7.71,6.29,1.43,1.43,0,0,1,6.29,7.71Z m0,11.43a1.43,1.43,0,1,1,1.42-1.43,1.43,1.43,0,0,1-1.42,1.43Z" x:Key="CutIcon" />
<!-- 粘贴按钮 -->
<PathGeometry Figures="M8.25,9.19A2.19,2.19,0,0,1,10.44,7h5.31V4.19a.94.94,0,0, 0-.94-.94H11.66a2.49,2.49,0,0,0-4.32,0H4.19a.94.94,0,0,0-.94.94 V17.31a.94.94,0,0,0,.94.94H8.25V9.19ZM9.5,3.56a.94.94,0,1,1-.94.94.94.94, 0,0,1,.94-.94Zm7.19,9.69h4.06v7.81a.94.94,0,0,1-.94.94H10.44a.94.94,0,0 ,1-.94-.94V9.19a.94.94,0,0,1,.94-.94h5.31v4.06a.94.94,0,0,0,.94.94Z m4.06-1.49V12H17V8.25h.24a1,1,0,0,1,.66.27l2.58,2.58a1,1,0,0,1,.27.66Z" x:Key="PasteIcon" />
<Style TargetType="{x:Type ContextMenu}" x:Key="TextBoxContextMenuDefault">
<Setter Property="FontSize" Value="14" />
<Setter Property="Padding" Value="2,0" />
<Setter Property="Foreground" Value="{DynamicResource TextPrimaryBrush}" />
<Setter Property="Background" Value="{DynamicResource BackgroundLayoutBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource BorderGradientBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Grid.IsSharedSizeScope" Value="true" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ContextMenu}">
<Grid>
<Border
Background="{TemplateBinding Background}"
BorderThickness="0"
CornerRadius="4"
Effect="{DynamicResource PopupShadow}"
Margin="8"
Padding="0"
x:Name="Border">
<StackPanel
IsItemsHost="True"
KeyboardNavigation.DirectionalNavigation="Cycle"
Margin="2,1" />
</Border>
<Rectangle
Margin="8"
RadiusX="4"
RadiusY="4"
Stroke="{TemplateBinding BorderBrush}"
StrokeThickness="{TemplateBinding BorderThickness}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<ContextMenu Style="{StaticResource TextBoxContextMenuDefault}" x:Key="TextBoxContextMenu">
<MenuItem Command="ApplicationCommands.Copy">
<MenuItem.Icon>
<Path
Data="{StaticResource CopyIcon}"
Fill="{DynamicResource TextPrimaryBrush}"
Stretch="Uniform" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="ApplicationCommands.Cut">
<MenuItem.Icon>
<Path
Data="{StaticResource CutIcon}"
Fill="{DynamicResource TextPrimaryBrush}"
Stretch="Uniform" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="ApplicationCommands.Paste">
<MenuItem.Icon>
<Path
Data="{StaticResource PasteIcon}"
Fill="{DynamicResource TextPrimaryBrush}"
Stretch="Uniform" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</ResourceDictionary>