NavisworksTransport/src/UI/WPF/Views/ConfigEditorDialog.xaml

216 lines
9.5 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!--
NavisworksTransport 配置编辑器对话框 - 采用与主界面一致的Navisworks 2026风格
功能说明:
1. 加载和显示 TOML 配置文件
2. 支持直接编辑配置文件内容
3. 提供保存、重载和恢复默认功能
4. 语法高亮和错误提示
5. 与主界面保持一致的视觉风格
设计原则:使用统一的蓝色主题和样式规范,针对配置文件编辑优化
-->
<Window x:Class="NavisworksTransport.UI.WPF.Views.ConfigEditorDialog"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
Title="系统参数配置"
Height="700"
Width="900"
ResizeMode="CanResize"
WindowStartupLocation="CenterOwner"
MinHeight="500"
MinWidth="700">
<Window.Resources>
<!-- 引用共享的Navisworks 2026样式资源 -->
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/TransportPlugin;component/src/UI/WPF/Resources/NavisworksStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
<!-- 配置编辑器特有的样式 -->
<Style x:Key="ConfigTextBoxStyle" TargetType="TextBox">
<Setter Property="FontFamily" Value="Consolas, Courier New"/>
<Setter Property="FontSize" Value="12"/>
<Setter Property="Background" Value="#FFFEFEFE"/>
<Setter Property="Foreground" Value="#FF333333"/>
<Setter Property="BorderBrush" Value="#FFD4E7FF"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="IsReadOnly" Value="False"/>
<Setter Property="VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="HorizontalScrollBarVisibility" Value="Auto"/>
<Setter Property="TextWrapping" Value="NoWrap"/>
<Setter Property="AcceptsReturn" Value="True"/>
<Setter Property="AcceptsTab" Value="True"/>
<Setter Property="Padding" Value="10"/>
</Style>
<Style x:Key="InfoPanelStyle" TargetType="Border">
<Setter Property="Background" Value="#FFFFF8DC"/>
<Setter Property="BorderBrush" Value="#FFFFC107"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="3"/>
<Setter Property="Padding" Value="12,8"/>
<Setter Property="Margin" Value="0,0,0,10"/>
</Style>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- 工具栏区域 -->
<Border Grid.Row="0"
BorderBrush="#FFD4E7FF"
BorderThickness="0,0,0,1"
Background="#FFF8FBFF"
Padding="15,10">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<!-- 左侧工具按钮 -->
<StackPanel Grid.Column="0" Orientation="Horizontal">
<Button Content="保存"
Click="SaveButton_Click"
Style="{StaticResource ActionButtonStyle}"
Margin="0,0,10,0"
ToolTip="保存配置文件"/>
<Button Content="重新加载"
Click="ReloadButton_Click"
Style="{StaticResource SecondaryButtonStyle}"
Margin="0,0,10,0"
ToolTip="放弃当前修改,重新加载配置文件"/>
<Button Content="恢复默认"
Click="ResetToDefaultButton_Click"
Style="{StaticResource SecondaryButtonStyle}"
Margin="0,0,10,0"
ToolTip="恢复为默认配置"/>
<!-- 分隔线 -->
<Border Width="1"
Background="#FFD4E7FF"
Margin="5,2"/>
<Button Content="打开配置文件夹"
Click="OpenConfigFolderButton_Click"
Style="{StaticResource SecondaryButtonStyle}"
Margin="10,0,0,0"
ToolTip="在资源管理器中打开配置文件所在目录"/>
</StackPanel>
<!-- 右侧文件信息 -->
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Label Content="配置文件:"
VerticalAlignment="Center"
Style="{StaticResource ParameterLabelStyle}"/>
<Label Name="ConfigFilePathLabel"
Content="config.toml"
VerticalAlignment="Center"
Style="{StaticResource ParameterLabelStyle}"
Foreground="#FF0066CC"
Margin="5,0,0,0"/>
</StackPanel>
</Grid>
</Border>
<!-- 帮助信息面板 -->
<Border Grid.Row="1"
Style="{StaticResource InfoPanelStyle}"
Margin="15,15,15,0">
<StackPanel>
<TextBlock FontWeight="SemiBold"
Foreground="#FF856404"
Margin="0,0,0,5">
<Run Text="💡 "/>
<Run Text="配置说明"/>
</TextBlock>
<TextBlock TextWrapping="Wrap"
FontSize="10"
Foreground="#FF856404"
LineHeight="18">
• TOML 格式配置文件,支持注释(#开头)和分组([section]<LineBreak/>
• 所有长度单位为米(m),时间单位为秒(s)<LineBreak/>
• 修改后点击"保存"按钮生效,建议先备份原配置<LineBreak/>
• 语法错误会在保存时提示,请确保格式正确
</TextBlock>
</StackPanel>
</Border>
<!-- 配置内容编辑区域 -->
<Border Grid.Row="2"
BorderBrush="#FFD4E7FF"
BorderThickness="1"
Background="White"
Margin="15,10">
<TextBox Name="ConfigContentTextBox"
Style="{StaticResource ConfigTextBoxStyle}"
TextChanged="ConfigContentTextBox_TextChanged"/>
</Border>
<!-- 底部状态栏和按钮 -->
<Border Grid.Row="3"
BorderBrush="#FFD4E7FF"
BorderThickness="0,1,0,0"
Background="#FFF8FBFF"
Padding="15,10">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<!-- 状态信息 -->
<StackPanel Grid.Column="0" Orientation="Horizontal">
<Label Name="StatusLabel"
Content="配置已加载"
Style="{StaticResource ParameterLabelStyle}"
Foreground="#FF2B8A2B"/>
<Label Name="FileSizeLabel"
Content="大小: 0 KB"
Style="{StaticResource ParameterLabelStyle}"
Margin="20,0,0,0"/>
<Label Name="LineCountLabel"
Content="行数: 0"
Style="{StaticResource ParameterLabelStyle}"
Margin="20,0,0,0"/>
<Label Name="ModifiedLabel"
Content=""
Style="{StaticResource ParameterLabelStyle}"
Foreground="#FFFF6B00"
Margin="20,0,0,0"/>
</StackPanel>
<!-- 右侧按钮 -->
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Button Content="应用"
Click="ApplyButton_Click"
Style="{StaticResource ActionButtonStyle}"
Margin="0,0,10,0"
ToolTip="应用配置并保持窗口打开"/>
<Button Content="确定"
Click="OkButton_Click"
Style="{StaticResource ActionButtonStyle}"
Margin="0,0,10,0"
ToolTip="保存配置并关闭窗口"/>
<Button Content="取消"
Click="CancelButton_Click"
Style="{StaticResource SecondaryButtonStyle}"
ToolTip="放弃修改并关闭窗口"/>
</StackPanel>
</Grid>
</Border>
</Grid>
</Window>