ScriptToolView.xaml 6.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <UserControl x:Class="Plugins.Script.Views.ScriptToolView"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:cf="clr-namespace:CodeForge;assembly=CodeForge"
  5. Background="{DynamicResource SecondaryRegionBrush}">
  6. <UserControl.Resources>
  7. <Style x:Key="ErrItem" TargetType="ListBoxItem">
  8. <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
  9. <Setter Property="Padding" Value="4,2"/>
  10. <Setter Property="FontSize" Value="12"/>
  11. <Setter Property="FontFamily" Value="Consolas, Courier New, monospace"/>
  12. </Style>
  13. </UserControl.Resources>
  14. <DockPanel>
  15. <!-- 顶部工具栏 -->
  16. <Border DockPanel.Dock="Top" Background="{DynamicResource RegionBrush}"
  17. BorderBrush="{DynamicResource BorderBrush}" BorderThickness="0,0,0,1">
  18. <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="8,6">
  19. <TextBlock x:Name="TxtTitle" Text="C#脚本" FontSize="14" FontWeight="Bold"
  20. Foreground="{DynamicResource PrimaryTextBrush}" VerticalAlignment="Center" Margin="0,0,14,0"/>
  21. <Button x:Name="BtnRefs" Content="引用" Click="BtnRefs_Click" Padding="12,3" Margin="0,0,8,0"
  22. Tag="程序集引用管理:添加/移除 DLL(自动归档到运行目录 References\,编辑器补全与流程运行期共用)"/>
  23. <Button x:Name="BtnCompile" Content="编译" Click="BtnCompile_Click" Padding="12,3" Margin="0,0,8,0"
  24. Tag="编译当前代码,错误/警告以波浪线标在代码上并列入下方错误列表"/>
  25. <Button x:Name="BtnRun" Content="运行" Click="BtnRun_Click" Padding="12,3" Margin="0,0,14,0"
  26. Tag="编译并运行入口 PluginRun(设计期:Service/CoreManager 可用;上游变量无数据)"/>
  27. <TextBlock Text="代码配色:" VerticalAlignment="Center" Margin="0,0,4,0"
  28. Foreground="{DynamicResource PrimaryTextBrush}"/>
  29. </StackPanel>
  30. </Border>
  31. <!-- 底部:错误列表 + 输出 -->
  32. <Grid DockPanel.Dock="Bottom" Height="200" Background="{DynamicResource RegionBrush}">
  33. <Grid.ColumnDefinitions>
  34. <ColumnDefinition Width="*"/>
  35. <ColumnDefinition Width="*"/>
  36. </Grid.ColumnDefinitions>
  37. <Border Grid.Column="0" Margin="4,4,2,4" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1">
  38. <Grid>
  39. <Grid.RowDefinitions>
  40. <RowDefinition Height="Auto"/>
  41. <RowDefinition Height="*"/>
  42. </Grid.RowDefinitions>
  43. <StackPanel Grid.Row="0" Orientation="Horizontal" Margin="8,5">
  44. <TextBlock Text="错误列表" FontWeight="SemiBold" FontSize="13" VerticalAlignment="Center"
  45. Foreground="{DynamicResource PrimaryBrush}"/>
  46. <TextBlock x:Name="ErrorCount" Text="(0 错误 / 0 警告)" FontSize="12" VerticalAlignment="Center"
  47. Margin="8,0,0,0" Foreground="{DynamicResource SecondaryTextBrush}"/>
  48. </StackPanel>
  49. <ListBox x:Name="ErrorListBox" Grid.Row="1" Margin="4,0,4,4" Background="Transparent" BorderThickness="0"
  50. ItemContainerStyle="{StaticResource ErrItem}" MouseDoubleClick="ErrorListBox_MouseDoubleClick">
  51. <ListBox.ItemTemplate>
  52. <DataTemplate>
  53. <Grid>
  54. <Grid.ColumnDefinitions>
  55. <ColumnDefinition Width="Auto"/>
  56. <ColumnDefinition Width="*"/>
  57. </Grid.ColumnDefinitions>
  58. <TextBlock Grid.Column="0" Text="{Binding SeverityText}" FontWeight="SemiBold"
  59. Foreground="{Binding SeverityBrush}" Width="46" Margin="0,0,8,0"/>
  60. <TextBlock Grid.Column="1" Text="{Binding Display}" TextTrimming="CharacterEllipsis"
  61. Foreground="{DynamicResource PrimaryTextBrush}"/>
  62. </Grid>
  63. </DataTemplate>
  64. </ListBox.ItemTemplate>
  65. </ListBox>
  66. </Grid>
  67. </Border>
  68. <Border Grid.Column="1" Margin="2,4,4,4" BorderBrush="{DynamicResource BorderBrush}" BorderThickness="1">
  69. <Grid>
  70. <Grid.RowDefinitions>
  71. <RowDefinition Height="Auto"/>
  72. <RowDefinition Height="*"/>
  73. </Grid.RowDefinitions>
  74. <StackPanel Grid.Row="0" Orientation="Horizontal" Margin="8,5">
  75. <TextBlock Text="输出" FontWeight="SemiBold" FontSize="13" VerticalAlignment="Center"
  76. Foreground="{DynamicResource PrimaryBrush}"/>
  77. <Button x:Name="BtnClearOutput" Content="清空" Click="BtnClearOutput_Click" Margin="14,0,0,0"
  78. Padding="8,0" FontSize="11" Height="22"/>
  79. </StackPanel>
  80. <TextBox x:Name="OutputTextBox" Grid.Row="1" Margin="4,0,4,4" IsReadOnly="True" TextWrapping="NoWrap"
  81. VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Background="Transparent"
  82. BorderThickness="0" Padding="4" FontFamily="Consolas, Courier New, monospace" FontSize="12"
  83. Foreground="{DynamicResource PrimaryTextBrush}"/>
  84. </Grid>
  85. </Border>
  86. </Grid>
  87. <!-- 中部:CodeForge 完整代码编辑器(自由写命名空间/多个类/方法) -->
  88. <cf:CodeEditorControl x:Name="Editor" ShowMiniMap="True" CodeTheme="FollowWindow"
  89. EditorFontSize="14" EditorFontFamily="Consolas, Courier New, monospace"/>
  90. </DockPanel>
  91. </UserControl>