189 lines
11 KiB
XML
189 lines
11 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:i="http://schemas.microsoft.com/expression/2010/interactivity"
|
|
xmlns:infrastructure="clr-namespace:StructureHelper.Infrastructure"
|
|
xmlns:dataTemplates="clr-namespace:StructureHelper.Infrastructure.UI.DataTemplates"
|
|
xmlns:dataContexts="clr-namespace:StructureHelper.Infrastructure.UI.DataContexts"
|
|
xmlns:mouseEventTriggers="clr-namespace:StructureHelper.Infrastructure.UI.Triggers.MouseEventTriggers"
|
|
xmlns:local="clr-namespace:StructureHelper.Windows.MainWindow"
|
|
xmlns:enums="clr-namespace:StructureHelper.Infrastructure.Enums"
|
|
xmlns:converters ="clr-namespace:StructureHelper.Infrastructure.UI.Converters.Units"
|
|
mc:Ignorable="d"
|
|
d:DataContext="{d:DesignInstance local:MainViewModel}"
|
|
Title="StructureHelper" Height="700" Width="1000">
|
|
<Window.Resources>
|
|
<converters:Length x:Key="LengthConverter"/>
|
|
<converters:Area x:Key="AreaConverter"/>
|
|
|
|
<DataTemplate DataType="{x:Type dataContexts:Rectangle}">
|
|
<dataTemplates:RectangleTemplate/>
|
|
</DataTemplate>
|
|
<DataTemplate DataType="{x:Type dataContexts:Point}">
|
|
<dataTemplates:EllipseTemplate/>
|
|
</DataTemplate>
|
|
</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="Calculation properties" Command="{Binding Path=EditCalculationPropertyCommand}"/>
|
|
<MenuItem Header="Templates">
|
|
<Button Content="Concrete beam 400x600" Command="{Binding AddTestCase}"/>
|
|
</MenuItem>
|
|
</MenuItem>
|
|
<MenuItem Header="Analisys">
|
|
<Button Content="Solve problem" Command="{Binding Path=Calculate}"/>
|
|
</MenuItem>
|
|
</Menu>
|
|
<Grid Grid.Row="1">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="Auto"/>
|
|
<ColumnDefinition Width="*"/>
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel>
|
|
<Expander Header="Materials" ExpandDirection="Down" MinWidth="20" >
|
|
<ListBox ItemsSource="{Binding HeadMaterials}">
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="20"/>
|
|
<ColumnDefinition/>
|
|
</Grid.ColumnDefinitions>
|
|
<Rectangle Grid.Column="0" Margin="3">
|
|
<Rectangle.Fill>
|
|
<SolidColorBrush Color="{Binding Color}"/>
|
|
</Rectangle.Fill>
|
|
</Rectangle>
|
|
<TextBlock Grid.Column="1" Text="{Binding Name}"/>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
</Expander>
|
|
<Expander Header="Geometry" ExpandDirection="Down" MinWidth="20" >
|
|
<ListBox ItemsSource="{Binding Primitives}" SelectedItem="{Binding SelectedPrimitive}">
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="20"/>
|
|
<ColumnDefinition/>
|
|
</Grid.ColumnDefinitions>
|
|
<Rectangle Grid.Column="0" Margin="3">
|
|
<Rectangle.Fill>
|
|
<SolidColorBrush Color="{Binding Color}"/>
|
|
</Rectangle.Fill>
|
|
</Rectangle>
|
|
<TextBlock Grid.Column="1" Text="{Binding Name}"/>
|
|
</Grid>
|
|
|
|
<!--<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="25"/>
|
|
<RowDefinition Height="20"/>
|
|
</Grid.RowDefinitions>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="1"/>
|
|
<ColumnDefinition MinWidth="50"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Viewbox Grid.RowSpan="2">
|
|
|
|
</Viewbox>
|
|
<TextBlock Grid.Column="1" Text="{Binding Name}"/>
|
|
<Button Grid.Column="1" Grid.Row="1" Content="..."/>
|
|
</Grid>-->
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
</Expander>
|
|
</StackPanel>
|
|
|
|
<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 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.RenderTransform>
|
|
<TransformGroup>
|
|
<ScaleTransform ScaleX="{Binding ScaleValue}" ScaleY="{Binding ScaleValue}"
|
|
CenterX="{Binding ScrollPanelX}" CenterY="{Binding ScrollPanelY}"/>
|
|
</TransformGroup>
|
|
</Canvas.RenderTransform>
|
|
<Canvas.Background>
|
|
<DrawingBrush Viewport="0,0,10,10" ViewportUnits="Absolute" TileMode="Tile">
|
|
<DrawingBrush.Drawing>
|
|
<GeometryDrawing Brush="Black">
|
|
<GeometryDrawing.Geometry>
|
|
<GeometryGroup FillRule="EvenOdd">
|
|
<RectangleGeometry Rect="0,0,50,50"/>
|
|
<RectangleGeometry Rect="0,0,49.5,49.5"/>
|
|
</GeometryGroup>
|
|
</GeometryDrawing.Geometry>
|
|
</GeometryDrawing>
|
|
</DrawingBrush.Drawing>
|
|
</DrawingBrush>
|
|
</Canvas.Background>
|
|
<Line X1="0" X2="{Binding XX2}" Y1="{Binding XY1}" Y2="{Binding XY1}" Stroke="Red" StrokeThickness="1"/>
|
|
<Line X1="{Binding YX1}" X2="{Binding YX1}" Y1="0" Y2="{Binding YY2}" Stroke="ForestGreen" StrokeThickness="1"/>
|
|
<ItemsControl ItemsSource="{Binding Primitives}" d:DataContext="{d:DesignInstance dataContexts:PrimitiveBase}">
|
|
<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 X, Converter={StaticResource LengthConverter}}"/>
|
|
<Setter Property="Canvas.Top" Value="{Binding Y, Converter={StaticResource LengthConverter}}"/>
|
|
</Style>
|
|
</ItemsControl.ItemContainerStyle>
|
|
</ItemsControl>
|
|
</Canvas>
|
|
</ScrollViewer>
|
|
</Border>
|
|
</Grid>
|
|
<StatusBar Grid.Row="2">
|
|
<StatusBarItem>
|
|
<TextBlock Text="Structure Helper"/>
|
|
</StatusBarItem>
|
|
</StatusBar>
|
|
</Grid>
|
|
</Window>
|