224 lines
14 KiB
XML
224 lines
14 KiB
XML
<Window x:Class="StructureHelper.Windows.MainWindow.MainView"
|
|
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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:infrastructure="clr-namespace:StructureHelper.Infrastructure"
|
|
xmlns:dataTemplates="clr-namespace:StructureHelper.Infrastructure.UI.DataTemplates"
|
|
xmlns:dataContexts="clr-namespace:StructureHelper.Infrastructure.UI.DataContexts"
|
|
xmlns:vm="clr-namespace:StructureHelper.Windows.MainWindow"
|
|
xmlns:mouseEventTriggers="clr-namespace:StructureHelper.Infrastructure.UI.Triggers.MouseEventTriggers"
|
|
xmlns:local="clr-namespace:StructureHelper.Windows.MainWindow"
|
|
xmlns:enums="clr-namespace:StructureHelper.Infrastructure.Enums"
|
|
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
|
|
mc:Ignorable="d"
|
|
d:DataContext="{d:DesignInstance local:MainViewModel}"
|
|
Title="StructureHelper" Height="700" Width="1000" MinHeight="400" MinWidth="600">
|
|
<Window.Resources>
|
|
<DataTemplate DataType="{x:Type dataContexts:RectangleViewPrimitive}">
|
|
<dataTemplates:RectangleTemplate/>
|
|
</DataTemplate>
|
|
<DataTemplate DataType="{x:Type dataContexts:PointViewPrimitive}">
|
|
<dataTemplates:EllipseTemplate/>
|
|
</DataTemplate>
|
|
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
|
|
</Window.Resources>
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="20"/>
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="25"/>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Menu x:Name="menu">
|
|
<MenuItem Header="File">
|
|
</MenuItem>
|
|
<MenuItem Header="Edit">
|
|
<MenuItem Header="Primitives">
|
|
<MenuItem Header="Add">
|
|
<Button Content="Add Rectangle" Command="{Binding AddPrimitive}" CommandParameter="{x:Static enums:PrimitiveType.Rectangle}"/>
|
|
<Button Content="Add Point" Command="{Binding AddPrimitive}" CommandParameter="{x:Static enums:PrimitiveType.Point}"/>
|
|
</MenuItem>
|
|
<Button Content="Edit primitive" Command="{Binding EditPrimitive}"/>
|
|
<Button Content="Delete primitive" Command="{Binding DeletePrimitive}"/>
|
|
</MenuItem>
|
|
<Button Content="Materials" Command="{Binding EditHeadMaterialsCommand}"/>
|
|
<Button Content="Move primitives to center" Command="{Binding Path=MovePrimitiveToGravityCenterCommand}"/>
|
|
<MenuItem Header="Templates">
|
|
<Button Content="Concrete beam" Command="{Binding AddBeamCase}"/>
|
|
<Button Content="Concrete column" Command="{Binding AddColumnCase}"/>
|
|
<Button Content="Concrete slab" Command="{Binding AddSlabCase}"/>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
<MenuItem Header="Tools">
|
|
<Button Content="Settings" Command="{Binding ShowVisualProperty}"/>
|
|
</MenuItem>
|
|
<!--<MenuItem Header="Help">
|
|
</MenuItem>-->
|
|
</Menu>
|
|
<Grid Grid.Row="1">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
|
<StackPanel>
|
|
<Expander Header="Actions" MinWidth="20" DataContext="{Binding CombinationsLogic}">
|
|
<Expander.ContextMenu>
|
|
<ContextMenu>
|
|
<Button Content="Add Force Combination" Command="{Binding Add}"/>
|
|
</ContextMenu>
|
|
</Expander.ContextMenu>
|
|
<ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}">
|
|
<ListBox.ContextMenu>
|
|
<ContextMenu>
|
|
<Button Content="Edit" Command="{Binding Edit}"/>
|
|
<Button Content="Copy" Command="{Binding Copy}"/>
|
|
<Button Content="Delete" Command="{Binding Delete}"/>
|
|
</ContextMenu>
|
|
</ListBox.ContextMenu>
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid>
|
|
<TextBlock Text="{Binding Name}"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
</Expander>
|
|
<Expander Header="Materials" MinWidth="20">
|
|
<Expander.ContextMenu>
|
|
<ContextMenu>
|
|
<Button Content="Materials" Command="{Binding EditHeadMaterialsCommand}"/>
|
|
</ContextMenu>
|
|
</Expander.ContextMenu>
|
|
<ListBox ItemsSource="{Binding HeadMaterials}" ItemTemplate="{StaticResource ColoredItemTemplate}">
|
|
</ListBox>
|
|
</Expander>
|
|
<Expander Header="Geometry" MinWidth="20" DataContext="{Binding PrimitiveLogic}">
|
|
<Expander.ContextMenu>
|
|
<ContextMenu>
|
|
<MenuItem Header="Add">
|
|
<Button Content="Add Rectangle" Command="{Binding Add}" CommandParameter="{x:Static enums:PrimitiveType.Rectangle}"/>
|
|
<Button Content="Add Point" Command="{Binding Add}" CommandParameter="{x:Static enums:PrimitiveType.Point}"/>
|
|
</MenuItem>
|
|
</ContextMenu>
|
|
</Expander.ContextMenu>
|
|
<ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" ItemTemplate="{StaticResource ColoredItemTemplate}">
|
|
<ListBox.ContextMenu>
|
|
<ContextMenu>
|
|
<Button Content="Edit" Command="{Binding Edit}"/>
|
|
<Button Content="Copy" Command="{Binding Copy}"/>
|
|
<Button Content="Delete" Command="{Binding Delete}"/>
|
|
<Button Content="To Foreground" Command="{Binding SetToFront}"/>
|
|
<Button Content="To Background" Command="{Binding SetToBack}"/>
|
|
</ContextMenu>
|
|
</ListBox.ContextMenu>
|
|
</ListBox>
|
|
</Expander>
|
|
<Expander Header="Analyses" MinWidth="20" DataContext="{Binding CalculatorsLogic}">
|
|
<Expander.ContextMenu>
|
|
<ContextMenu>
|
|
<Button Content="Add Calculator" Command="{Binding Add}"/>
|
|
</ContextMenu>
|
|
</Expander.ContextMenu>
|
|
<ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}">
|
|
<ListBox.ContextMenu>
|
|
<ContextMenu>
|
|
<Button Content="Run" Command="{Binding Run}"/>
|
|
<Button Content="Edit" Command="{Binding Edit}"/>
|
|
<Button Content="Copy" Command="{Binding Copy}"/>
|
|
<Button Content="Delete" Command="{Binding Delete}"/>
|
|
</ContextMenu>
|
|
</ListBox.ContextMenu>
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid>
|
|
<TextBlock Text="{Binding Name}"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
</Expander>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
<Border BorderBrush="Black" Background="White" BorderThickness="1" Margin="5" Grid.Column="1">
|
|
<i:Interaction.Triggers>
|
|
<i:EventTrigger EventName="PreviewMouseDown">
|
|
<i:InvokeCommandAction Command="{Binding ClearSelection}" CommandParameter="{Binding}"/>
|
|
</i:EventTrigger>
|
|
</i:Interaction.Triggers>
|
|
<ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible">
|
|
<Canvas Name="WorkPlane" ClipToBounds="True" Width="{Binding CanvasWidth}" Height="{Binding CanvasHeight}">
|
|
<i:Interaction.Behaviors>
|
|
<infrastructure:MouseBehaviour MouseX="{Binding PanelX, Mode=OneWayToSource}" MouseY="{Binding PanelY, Mode=OneWayToSource}"/>
|
|
</i:Interaction.Behaviors>
|
|
<i:Interaction.Triggers>
|
|
<mouseEventTriggers:MouseWheelDownEventTrigger EventName="PreviewMouseWheel">
|
|
<i:InvokeCommandAction Command="{Binding ScaleCanvasDown}"/>
|
|
</mouseEventTriggers:MouseWheelDownEventTrigger>
|
|
<mouseEventTriggers:MouseWheelUpEventTrigger EventName="PreviewMouseWheel">
|
|
<i:InvokeCommandAction Command="{Binding ScaleCanvasUp}"/>
|
|
</mouseEventTriggers:MouseWheelUpEventTrigger>
|
|
</i:Interaction.Triggers>
|
|
<Canvas.LayoutTransform>
|
|
<TransformGroup>
|
|
<ScaleTransform ScaleX="{Binding ScaleValue}" ScaleY="{Binding ScaleValue}"
|
|
CenterX="{Binding ScrollPanelX}" CenterY="{Binding ScrollPanelY}"/>
|
|
</TransformGroup>
|
|
</Canvas.LayoutTransform>
|
|
<Canvas.Background>
|
|
<VisualBrush TileMode="Tile"
|
|
Viewport="{Binding CanvasViewportSize}" ViewportUnits="Absolute"
|
|
Viewbox="{Binding CanvasViewportSize}" ViewboxUnits="Absolute">
|
|
<VisualBrush.Visual>
|
|
<Rectangle StrokeThickness="{Binding GridLineThickness}" Height="{Binding GridSize}" Width="{Binding GridSize}" Stroke="Darkgray"/>
|
|
</VisualBrush.Visual>
|
|
</VisualBrush>
|
|
</Canvas.Background>
|
|
<Line X1="0" X2="{Binding XX2}" Y1="{Binding XY1}" Y2="{Binding XY1}" Stroke="Red" StrokeThickness="{Binding AxisLineThickness}"/>
|
|
<Line X1="{Binding YX1}" X2="{Binding YX1}" Y1="0" Y2="{Binding YY2}" Stroke="ForestGreen" StrokeThickness="{Binding AxisLineThickness}"/>
|
|
<ItemsControl ItemsSource="{Binding PrimitiveLogic.Items}" d:DataContext="{d:DesignInstance vm:MainViewModel}">
|
|
<ItemsControl.ItemsPanel>
|
|
<ItemsPanelTemplate>
|
|
<Canvas/>
|
|
</ItemsPanelTemplate>
|
|
</ItemsControl.ItemsPanel>
|
|
<ItemsControl.ItemContainerStyle>
|
|
<Style TargetType="ContentPresenter">
|
|
<Setter Property="Canvas.ZIndex" Value="{Binding ZIndex}"/>
|
|
<Setter Property="Canvas.Left" Value="{Binding PrimitiveLeft}"/>
|
|
<Setter Property="Canvas.Top" Value="{Binding PrimitiveTop}"/>
|
|
<Setter Property="Visibility" Value="{Binding IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}"/>
|
|
</Style>
|
|
</ItemsControl.ItemContainerStyle>
|
|
</ItemsControl>
|
|
</Canvas>
|
|
</ScrollViewer>
|
|
</Border>
|
|
</Grid>
|
|
<StatusBar Grid.Row="2">
|
|
<StatusBarItem>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="Zoom: "/>
|
|
<TextBlock Text="{Binding ScaleValue}"/>
|
|
</StackPanel>
|
|
</StatusBarItem>
|
|
<StatusBarItem>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="Number of primitives: "/>
|
|
<TextBlock Text="{Binding PrimitiveLogic.PrimitivesCount}"/>
|
|
</StackPanel>
|
|
</StatusBarItem>
|
|
<StatusBarItem>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="Grid size: "/>
|
|
<TextBlock Text="{Binding GridSize, Converter={StaticResource LengthConverter}}"/>
|
|
</StackPanel>
|
|
</StatusBarItem>
|
|
</StatusBar>
|
|
</Grid>
|
|
</Window>
|