Files
SzmediTools/Szmedi.RvKits/ScriptPad/CodeEditor.xaml

137 lines
5.9 KiB
Plaintext
Raw Normal View History

2025-09-16 16:06:41 +08:00
<UserControl
x:Class="ScriptPad.CodeEditor"
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:editor="http://icsharpcode.net/sharpdevelop/avalonedit"
xmlns:local="clr-namespace:ScriptPad"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
d:DesignHeight="450"
d:DesignWidth="800"
Background="{DynamicResource MaterialDesign.Brush.Background}"
TextElement.Foreground="{DynamicResource MaterialDesign.Brush.Foreground}"
mc:Ignorable="d">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Szmedi.RvKits;component/ScriptPad/resource/ImageResource.xaml" />
<ResourceDictionary Source="pack://application:,,,/Szmedi.RvKits;component/WPFUI.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="*" />
<RowDefinition Height="auto" />
<RowDefinition Height="20" MaxHeight="500" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="auto" />
</Grid.ColumnDefinitions>
<ToolBar Grid.Row="0" ToolBarTray.IsLocked="True">
<ToolBar.Template>
<ControlTemplate TargetType="ToolBar">
<ToolBarPanel Background="{TemplateBinding Background}" IsItemsHost="True" />
</ControlTemplate>
</ToolBar.Template>
<ToolBar.Resources>
<Style TargetType="{x:Type Image}">
<Setter Property="Height" Value="16" />
<Setter Property="Margin" Value="1" />
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource AncestorType={x:Type ButtonBase}, AncestorLevel=1}, Path=IsEnabled}" Value="False">
<Setter Property="Opacity" Value="0.30" />
</DataTrigger>
</Style.Triggers>
</Style>
</ToolBar.Resources>
<Button
Name="OpenFile_btn"
Margin="3"
Click="OpenFile_btn_Click"
ToolTip="从文件加载">
<md:PackIcon Kind="File" />
<!--<Image Source="/ScriptPad;component/Resource/Images/OpenFile_16x.png" />-->
</Button>
<Button Name="SaveFile_btn" Click="SaveFile_btn_Click" ToolTip="保存脚本">
<!--<Image Source="/ScriptPad;component/Resource/Images/Save_16x.png" />-->
<md:PackIcon Kind="ContentSave" />
</Button>
<Button Command="Undo" ToolTip="撤销">
<md:PackIcon Kind="Undo" />
</Button>
<Button Command="Redo" ToolTip="重做">
<md:PackIcon Kind="Redo" />
</Button>
<Separator />
<Button Name="runBtn" Click="runBtn_Click" ToolTip="运行">
<md:PackIcon Kind="Play" />
</Button>
<Separator />
<Button Name="formatBtn" Click="formatBtn_Click">
<md:PackIcon Kind="FormatText" />
</Button>
<Button Name="CommentBtn" Click="CommentBtn_Click">
<md:PackIcon Kind="CommentOutline" />
</Button>
<Button Name="UnCommentBtn" Click="UnCommentBtn_Click">
<md:PackIcon Kind="CommentOffOutline" />
</Button>
<Separator />
<Button Name="AddReference" Click="Reference_Click" ToolTip="引用">
<md:PackIcon Kind="Attachment" />
</Button>
</ToolBar>
<editor:TextEditor
x:Name="codeEditor"
Grid.Row="1"
Background="{DynamicResource MaterialDesign.Brush.Background}"
FontFamily="Consolas"
FontSize="14"
Foreground="{DynamicResource MaterialDesign.Brush.Foreground}"
ShowLineNumbers="True"
SyntaxHighlighting="C#">
<editor:TextEditor.ContextMenu>
<ContextMenu>
<MenuItem Command="Find" Header="查找">
<MenuItem.Icon>
<md:PackIcon Kind="Search" />
</MenuItem.Icon>
</MenuItem>
<Separator />
<MenuItem Command="Cut" Header="剪切">
<MenuItem.Icon>
<md:PackIcon Kind="ContentCut" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="Copy" Header="复制">
<MenuItem.Icon>
<md:PackIcon Kind="ContentCopy" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Command="Paste" Header="粘贴">
<MenuItem.Icon>
<md:PackIcon Kind="ContentPaste" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</editor:TextEditor.ContextMenu>
</editor:TextEditor>
<GridSplitter Grid.Row="2" Height="6" HorizontalAlignment="Stretch" />
<RichTextBox
Name="outTextbox"
Grid.Row="3"
FontFamily="Consolas"
FontSize="14"
VerticalScrollBarVisibility="Visible">
<FlowDocument Name="flowDocument" />
</RichTextBox>
</Grid>
</UserControl>