282 lines
17 KiB
XML
282 lines
17 KiB
XML
<!--
|
||
NavisworksTransport 类别设置页签视图 - 参考分层管理页签的设计风格
|
||
|
||
功能改进:
|
||
1. 参考分层管理页签的布局风格和UI组织方式
|
||
2. 将模型选择的提示和通知移动到类别属性区域中
|
||
3. 提供完整的物流属性设置功能,包括物流类型、可通行性、优先级、限制值等
|
||
4. 增加插件默认宽度到480像素以容纳更多内容
|
||
5. 保持与Navisworks 2026风格一致的设计
|
||
|
||
设计原则:简化操作流程、整合相关功能、与Navisworks 2026风格一致
|
||
-->
|
||
<UserControl x:Class="NavisworksTransport.UI.WPF.Views.ModelSettingsView"
|
||
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"
|
||
xmlns:converters="clr-namespace:NavisworksTransport.UI.WPF.Converters"
|
||
mc:Ignorable="d"
|
||
d:DesignHeight="700" d:DesignWidth="480">
|
||
|
||
<UserControl.Resources>
|
||
<ResourceDictionary>
|
||
<ResourceDictionary.MergedDictionaries>
|
||
<ResourceDictionary Source="pack://application:,,,/NavisworksTransportPlugin;component/src/UI/WPF/Resources/NavisworksStyles.xaml"/>
|
||
</ResourceDictionary.MergedDictionaries>
|
||
|
||
<!-- 转换器资源 -->
|
||
<converters:BoolToVisibilityConverter x:Key="BoolToVisConverter"/>
|
||
<converters:IndexConverter x:Key="IndexConverter"/>
|
||
</ResourceDictionary>
|
||
</UserControl.Resources>
|
||
|
||
<ScrollViewer VerticalScrollBarVisibility="Auto" Padding="10">
|
||
<StackPanel>
|
||
|
||
<!-- 区域1: 物流属性设置 -->
|
||
<Border BorderBrush="#FFD4E7FF" BorderThickness="1" CornerRadius="0" Margin="0,0,0,15" Padding="12">
|
||
<StackPanel>
|
||
<Label Content="物流属性设置" Style="{StaticResource SectionHeaderStyle}"/>
|
||
|
||
<!-- 模型选择状态显示 -->
|
||
<Grid Margin="0,5,0,15">
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto"/>
|
||
<RowDefinition Height="Auto"/>
|
||
</Grid.RowDefinitions>
|
||
|
||
<TextBlock Grid.Row="0"
|
||
Text="{Binding SelectedModelsText}"
|
||
FontWeight="SemiBold"
|
||
Foreground="#FF2B579A"
|
||
Margin="0,0,0,5"/>
|
||
</Grid>
|
||
|
||
<!-- 类别属性设置 -->
|
||
<GroupBox Header="物流属性" Margin="0,5,0,0">
|
||
<StackPanel Margin="10">
|
||
<!-- 第一行:物流类型和可通行性 -->
|
||
<Grid Margin="0,0,0,10">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="140"/>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="100"/>
|
||
<ColumnDefinition Width="*"/>
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<Label Grid.Column="0" Content="物流类型:" Style="{StaticResource ParameterLabelStyle}"/>
|
||
<ComboBox Grid.Column="1"
|
||
ItemsSource="{Binding AvailableCategories}"
|
||
SelectedItem="{Binding SelectedCategory}"
|
||
Margin="5,2" IsEnabled="{Binding IsNotProcessing}"
|
||
ToolTip="选择物流元素的类型"/>
|
||
|
||
<Label Grid.Column="2" Content="可通行:" VerticalAlignment="Center" Margin="15,0,0,0"/>
|
||
<CheckBox Grid.Column="3"
|
||
IsChecked="{Binding IsTraversable}"
|
||
VerticalAlignment="Center" Margin="5,2"
|
||
ToolTip="是否允许物流运输通过此区域"/>
|
||
</Grid>
|
||
|
||
<!-- 第二行:优先级 -->
|
||
<Grid Margin="0,0,0,10">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="140"/>
|
||
<ColumnDefinition Width="*"/>
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<Label Grid.Column="0" Content="优先级:" Style="{StaticResource ParameterLabelStyle}"/>
|
||
<ComboBox Grid.Column="1"
|
||
ItemsSource="{Binding PriorityLevels}"
|
||
SelectedItem="{Binding Priority}"
|
||
Margin="5,2" IsEnabled="{Binding IsNotProcessing}"
|
||
ToolTip="1-5级,5为最高优先级"/>
|
||
<TextBlock Grid.Column="2"
|
||
Text="(1-5级,5为最高优先级)"
|
||
Style="{StaticResource StatusTextStyle}"
|
||
VerticalAlignment="Center"
|
||
Margin="10,0,0,0"/>
|
||
</Grid>
|
||
|
||
<!-- 第三行:限制尺寸 -->
|
||
<Grid Margin="0,0,0,10">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="80"/>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="80"/>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="*"/>
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<Label Grid.Column="0" Content="限宽:" Style="{StaticResource ParameterLabelStyle}"/>
|
||
<TextBox Grid.Column="1"
|
||
Text="{Binding WidthLimit}"
|
||
Style="{StaticResource ParameterInputStyle}"
|
||
ToolTip="通行宽度限制(米)"/>
|
||
<Label Grid.Column="2" Content="米" Style="{StaticResource UnitLabelStyle}"/>
|
||
|
||
<Label Grid.Column="3" Content="限高:" VerticalAlignment="Center" Margin="15,0,0,0"/>
|
||
<TextBox Grid.Column="4"
|
||
Text="{Binding HeightLimit}"
|
||
Style="{StaticResource ParameterInputStyle}"
|
||
ToolTip="通行高度限制(米)"/>
|
||
<Label Grid.Column="5" Content="米" Style="{StaticResource UnitLabelStyle}"/>
|
||
</Grid>
|
||
|
||
<!-- 第四行:限速 -->
|
||
<Grid Margin="0,0,0,15">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="80"/>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="*"/>
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<Label Grid.Column="0" Content="限速:" Style="{StaticResource ParameterLabelStyle}"/>
|
||
<TextBox Grid.Column="1"
|
||
Text="{Binding SpeedLimit}"
|
||
Style="{StaticResource ParameterInputStyle}"
|
||
ToolTip="速度限制(米/秒)"/>
|
||
<Label Grid.Column="2" Content="米/秒" Style="{StaticResource UnitLabelStyle}" Width="40"/>
|
||
<TextBlock Grid.Column="3"
|
||
Text="推荐值:通道 0.8m/s,电梯 0.5m/s,楼梯 0.3m/s"
|
||
Style="{StaticResource StatusTextStyle}"
|
||
VerticalAlignment="Center"
|
||
Margin="10,0,0,0"/>
|
||
</Grid>
|
||
|
||
<!-- 操作按钮区域 -->
|
||
<StackPanel Orientation="Horizontal"
|
||
HorizontalAlignment="Center"
|
||
Margin="0,5,0,5">
|
||
<Button Content="设置属性"
|
||
Style="{StaticResource ActionButtonStyle}"
|
||
Command="{Binding SetLogisticsAttributeCommand}"
|
||
IsEnabled="{Binding CanSetLogisticsAttribute}"
|
||
ToolTip="为选中的模型应用上述物流属性"/>
|
||
<Button Content="重置默认值"
|
||
Style="{StaticResource SecondaryButtonStyle}"
|
||
Command="{Binding ResetToDefaultsCommand}"
|
||
ToolTip="将所有参数重置为推荐的默认值"/>
|
||
</StackPanel>
|
||
</StackPanel>
|
||
</GroupBox>
|
||
</StackPanel>
|
||
</Border>
|
||
|
||
<!-- 区域2: 物流模型列表 -->
|
||
<Border BorderBrush="#FFD4E7FF" BorderThickness="1" CornerRadius="0" Margin="0,0,0,15" Padding="12">
|
||
<StackPanel>
|
||
<Label Content="物流模型列表" Style="{StaticResource SectionHeaderStyle}"/>
|
||
|
||
<!-- 列表刷新控制 -->
|
||
<Grid Margin="0,5,0,10">
|
||
<Grid.ColumnDefinitions>
|
||
<ColumnDefinition Width="Auto"/>
|
||
<ColumnDefinition Width="*"/>
|
||
</Grid.ColumnDefinitions>
|
||
|
||
<Button Grid.Column="0"
|
||
Content="刷新列表"
|
||
Style="{StaticResource SecondaryButtonStyle}"
|
||
Command="{Binding RefreshLogisticsModelsCommand}"
|
||
ToolTip="重新扫描模型中的所有物流元素"/>
|
||
<TextBlock Grid.Column="1"
|
||
Text="显示模型中所有已设置物流属性的元素"
|
||
Style="{StaticResource StatusTextStyle}"
|
||
VerticalAlignment="Center"
|
||
Margin="10,0,0,0"/>
|
||
</Grid>
|
||
|
||
<!-- 物流模型列表 -->
|
||
<GroupBox Header="已设置物流属性的模型" Margin="0,10,0,0" MinHeight="200">
|
||
<ListView ItemsSource="{Binding LogisticsModels}"
|
||
SelectedItem="{Binding SelectedLogisticsModel}"
|
||
Margin="5">
|
||
<ListView.View>
|
||
<GridView>
|
||
<GridViewColumn Header="序号" Width="40">
|
||
<GridViewColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=ListViewItem}, Converter={StaticResource IndexConverter}}"
|
||
HorizontalAlignment="Center"/>
|
||
</DataTemplate>
|
||
</GridViewColumn.CellTemplate>
|
||
</GridViewColumn>
|
||
<GridViewColumn Header="模型名称" DisplayMemberBinding="{Binding Name}" Width="140"/>
|
||
<GridViewColumn Header="物流类别" DisplayMemberBinding="{Binding Category}" Width="80"/>
|
||
<GridViewColumn Header="属性详情" DisplayMemberBinding="{Binding Attributes}" Width="180"/>
|
||
<GridViewColumn Header="可见" Width="50">
|
||
<GridViewColumn.CellTemplate>
|
||
<DataTemplate>
|
||
<CheckBox IsChecked="{Binding IsVisible}"
|
||
HorizontalAlignment="Center"
|
||
IsEnabled="False"/>
|
||
</DataTemplate>
|
||
</GridViewColumn.CellTemplate>
|
||
</GridViewColumn>
|
||
</GridView>
|
||
</ListView.View>
|
||
</ListView>
|
||
</GroupBox>
|
||
</StackPanel>
|
||
</Border>
|
||
|
||
<!-- 区域3: 可见性控制 -->
|
||
<Border BorderBrush="#FFD4E7FF" BorderThickness="1" CornerRadius="0" Margin="0,0,0,15" Padding="12">
|
||
<StackPanel>
|
||
<Label Content="显示模式控制" Style="{StaticResource SectionHeaderStyle}"/>
|
||
|
||
<!-- 可见性控制选项 -->
|
||
<Grid Margin="0,5,0,15">
|
||
<Grid.RowDefinitions>
|
||
<RowDefinition Height="Auto"/>
|
||
<RowDefinition Height="Auto"/>
|
||
</Grid.RowDefinitions>
|
||
|
||
<CheckBox Grid.Row="0"
|
||
Content="仅显示物流元素"
|
||
IsChecked="{Binding IsLogisticsOnlyMode}"
|
||
ToolTip="开启后只显示已设置物流属性的元素,关闭后显示所有元素"
|
||
FontWeight="Bold"
|
||
Margin="0,5"/>
|
||
|
||
<TextBlock Grid.Row="1"
|
||
Text="提示:开启此选项可提高大模型性能,隐藏非物流相关元素。物流模型列表会自动更新。"
|
||
Style="{StaticResource StatusTextStyle}"
|
||
Margin="0,5,0,0"/>
|
||
</Grid>
|
||
</StackPanel>
|
||
</Border>
|
||
|
||
<!-- 状态显示区域 -->
|
||
<Border BorderBrush="#FFE0E0E0" BorderThickness="1" CornerRadius="0" Padding="12"
|
||
Visibility="{Binding IsProcessing, Converter={StaticResource BoolToVisConverter}}">
|
||
<StackPanel>
|
||
<TextBlock Text="{Binding StatusText}"
|
||
FontWeight="SemiBold"
|
||
Margin="0,0,0,5"/>
|
||
<ProgressBar IsIndeterminate="True"
|
||
Height="16"
|
||
Margin="0,0,0,5"/>
|
||
<TextBlock Text="正在处理,请稍候..."
|
||
Style="{StaticResource StatusTextStyle}"/>
|
||
</StackPanel>
|
||
</Border>
|
||
|
||
<!-- 底部状态栏 -->
|
||
<Border BorderBrush="#FFE0E0E0" BorderThickness="1" CornerRadius="0" Padding="8"
|
||
Background="#FFF8F9FA" Margin="0,5,0,0">
|
||
<TextBlock Text="{Binding StatusText}"
|
||
Style="{StaticResource StatusTextStyle}"
|
||
HorizontalAlignment="Center"/>
|
||
</Border>
|
||
|
||
</StackPanel>
|
||
</ScrollViewer>
|
||
</UserControl> |