Files
SzmediTools/Szmedi.RvKits/Modeling/TrackCreatorWin.xaml
2025-09-19 09:18:09 +08:00

158 lines
9.1 KiB
XML
Raw Permalink 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.
<controls:MaterialWindow
x:Class="Szmedi.RvKits.Modeling.TrackCreatorWin"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
xmlns:controls="clr-namespace:Szmedi.RvKits.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Szmedi.RvKits.Modeling"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="轨道创建"
Width="420"
Height="720"
d:DataContext="{d:DesignInstance Type=local:TrackCreatorViewModel}"
SizeToContent="Height"
mc:Ignorable="d">
<controls:MaterialWindow.Resources>
<ResourceDictionary Source="pack://application:,,,/Szmedi.RvKits;component/WPFUI.xaml" />
</controls:MaterialWindow.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image Margin="5,5,5,5" Source="{Binding PreviewImage}" />
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<GroupBox
Grid.Row="0"
Grid.Column="0"
Header="轨道">
<StackPanel>
<ComboBox
materialDesign:HintAssist.Hint="轨道轮廓类型"
DisplayMemberPath="FullName"
IsEditable="True"
ItemsSource="{Binding ProfileFamilyTypesView, Mode=OneWay}"
SelectedItem="{Binding SelectedProfileFamilyType, UpdateSourceTrigger=PropertyChanged}"
Text="{Binding SearchProfileText, UpdateSourceTrigger=PropertyChanged}"
ToolTip="未选择则不创建,&#x0a;右键点击清除选择">
<b:Interaction.Triggers>
<b:EventTrigger EventName="MouseRightButtonUp">
<b:InvokeCommandAction Command="{Binding ClearProfilesSelectionCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</ComboBox>
<ComboBox
materialDesign:HintAssist.Hint="轨道材质"
DisplayMemberPath="Name"
IsEditable="True"
ItemsSource="{Binding MaterialsView, Mode=OneWay}"
SelectedItem="{Binding SelectedMaterial, UpdateSourceTrigger=PropertyChanged}"
Text="{Binding SearchMaterialText, UpdateSourceTrigger=PropertyChanged}"
ToolTip="未选择无材质,&#x0a;右键点击清除选择">
<b:Interaction.Triggers>
<b:EventTrigger EventName="MouseRightButtonUp">
<b:InvokeCommandAction Command="{Binding ClearMaterialSelectionCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</ComboBox>
<TextBox
materialDesign:TextFieldAssist.PrefixText="偏移距离X"
materialDesign:TextFieldAssist.SuffixText="mm"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding OffsetX, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:N2}}"
ToolTip="向右偏移设置为正值,&#x0a;向左偏移为负值" />
<TextBox
materialDesign:TextFieldAssist.PrefixText="偏移距离Y"
materialDesign:TextFieldAssist.SuffixText="mm"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding OffsetY, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:N2}}"
ToolTip="向上偏移设置为正值,&#x0a;向下偏移为负值" />
</StackPanel>
</GroupBox>
<GroupBox
Grid.Row="0"
Grid.Column="1"
Header="扣件、轨枕">
<StackPanel>
<ComboBox
materialDesign:HintAssist.Hint="扣件或轨枕类型"
DisplayMemberPath="FullName"
IsEditable="True"
ItemsSource="{Binding FamilyTypesView, Mode=OneWay}"
SelectedItem="{Binding SelectedFamilyType, UpdateSourceTrigger=PropertyChanged}"
Text="{Binding SearchFamilyText, UpdateSourceTrigger=PropertyChanged}"
ToolTip="未选择则不创建,&#x0a;右键点击清除选择">
<b:Interaction.Triggers>
<b:EventTrigger EventName="MouseRightButtonUp">
<b:InvokeCommandAction Command="{Binding ClearFmailyTypeSelectionCommand}" />
</b:EventTrigger>
</b:Interaction.Triggers>
</ComboBox>
<TextBox
materialDesign:TextFieldAssist.PrefixText="水平间距:"
materialDesign:TextFieldAssist.SuffixText="mm"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding Spacing, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:N2}}" />
<TextBox
materialDesign:TextFieldAssist.PrefixText="偏移距离X"
materialDesign:TextFieldAssist.SuffixText="mm"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding InstanceOffsetX, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:N2}}"
ToolTip="向右偏移设置为正值,&#x0a;向左偏移为负值" />
<TextBox
materialDesign:TextFieldAssist.PrefixText="偏移距离Y"
materialDesign:TextFieldAssist.SuffixText="mm"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding InstanceOffsetY, UpdateSourceTrigger=PropertyChanged, StringFormat={}{0:N2}}"
ToolTip="向上偏移设置为正值,&#x0a;向下偏移为负值" />
</StackPanel>
</GroupBox>
</Grid>
<GroupBox Grid.Row="2" Header="中心线类型">
<UniformGrid VerticalAlignment="Center" Rows="1">
<RadioButton
Content="模型线"
IsChecked="{Binding CenterCurveType, ConverterParameter={x:Static local:CenterCurveType.ModelCurve}, Converter={StaticResource ComparisonConverter}}"
ToolTip="框选连续、非闭合的模型线并在工具栏完成选择,&#x0a;模型线的定位平面为绘制时的工作平面,&#x0a;如在楼层楼层平面为该楼层高度" />
<RadioButton
Content="体量族"
IsChecked="{Binding CenterCurveType, ConverterParameter={x:Static local:CenterCurveType.MassCurve}, Converter={StaticResource ComparisonConverter}}"
ToolTip="体量族中仅包含有一条连续的三维曲线" />
<RadioButton
Content="dwg链接"
IsChecked="{Binding CenterCurveType, ConverterParameter={x:Static local:CenterCurveType.DWGCurve}, Converter={StaticResource ComparisonConverter}}"
ToolTip="dwg中仅有一条连续的三维曲线" />
</UniformGrid>
</GroupBox>
<UniformGrid Grid.Row="3" Rows="1">
<TextBox
materialDesign:TextFieldAssist.PrefixText="最小细分长度:"
materialDesign:TextFieldAssist.SuffixText="m"
InputMethod.IsInputMethodEnabled="False"
Text="{Binding Precision, UpdateSourceTrigger=PropertyChanged}"
ToolTip="数值越小,越贴合原曲线,&#x0a;建议模型线(由于单条曲线较长)取值小一些" />
<CheckBox
HorizontalAlignment="Center"
Content="两侧布置"
IsChecked="{Binding IsTwoSides}"
ToolTip="截面或者实例是否在中心线另一侧创建或布置" />
<Button
Command="{Binding CreateTrackCommand}"
Content="创建"
ToolTip="选择合适的选项,创建模型。&#x0a;注意:两根模型线之间若角度极小,&#x0a;可作为一条直线时,使用一条直线代替" />
</UniformGrid>
</Grid>
</controls:MaterialWindow>