|
- <Window x:Name="window" x:Class="BeDesignerSCADA.MainWindow"
- 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:local="clr-namespace:BeDesignerSCADA"
- xmlns:s="clr-namespace:BeDesignerSCADA.Converters"
- xmlns:icon="http://metro.mahapps.com/winfx/xaml/iconpacks"
- xmlns:avae="http://icsharpcode.net/sharpdevelop/avalonedit"
- xmlns:ctl="clr-namespace:BeDesignerSCADA.Controls"
- xmlns:mypro="http://schemas.xceed.com/wpf/xaml/toolkit"
- mc:Ignorable="d"
- WindowStartupLocation="CenterScreen"
- Title="黑菠萝科技-[组态软件1.0]" Height="900" Width="1400" Icon="/Images/ico.ico" >
-
- <Window.Resources>
- <ResourceDictionary>
- <ResourceDictionary.MergedDictionaries>
- <ResourceDictionary Source="/BeDesignerSCADA;component/Themes/Styles.xaml" />
- <ResourceDictionary Source="/BPASmartClient.SCADAControl;component/Themes/Generic.xaml" />
- </ResourceDictionary.MergedDictionaries>
- </ResourceDictionary>
- </Window.Resources>
-
- <Grid x:Name="grid">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="240"/>
- <ColumnDefinition/>
- <ColumnDefinition Width="350"/>
- </Grid.ColumnDefinitions>
- <!--<icon:PackIconMaterial x:Name="icon" Kind="LineScan" BorderThickness="1" VerticalAlignment="Stretch" Width="24" HorizontalAlignment="Stretch"/>-->
- <!--左侧控件栏-->
- <Border BorderThickness="1" BorderBrush="{StaticResource AccentBrush}" Margin="4">
- <ListBox x:Name="CtlList" Background="Transparent" ItemTemplate="{DynamicResource ToolBoxStyle}" BorderThickness="0" PreviewMouseMove="CtlList_PreviewMouseMove">
- </ListBox>
- </Border>
-
- <!--中间控制区域-->
- <DockPanel Grid.Column="1">
- <!--按钮控制-->
- <DockPanel LastChildFill="False" DockPanel.Dock="Top" Height="24" Margin="4 4 4 0">
- <Button Margin="0" Width="24" Padding="0" Click="AglinLeftBtn_Click" ToolTip="左对齐">
- <icon:PackIconModern Kind="AlignLeft"/>
- </Button>
- <Button Margin="4 0 0 0" Width="24" Padding="0" Click="AglinRightBtn_Click" ToolTip="右对齐">
- <icon:PackIconModern Kind="AlignRight"/>
- </Button>
- <Button Margin="4 0 0 0" Width="24" Padding="0" Click="AglinCenterBtn_Click" ToolTip="中心对齐">
- <icon:PackIconModern Kind="AlignCenter"/>
- </Button>
- <Button Margin="4 0 0 0" Width="24" Padding="0" Click="AglinTopBtn_Click" ToolTip="上对齐">
- <icon:PackIconModern Kind="BorderTop"/>
- </Button>
- <Button Margin="4 0 0 0" Width="24" Padding="0" Click="AglinBottomBtn_Click" ToolTip="下对齐">
- <icon:PackIconModern Kind="BorderBottom"/>
- </Button>
- <Button Margin="16 0 0 0" Width="24" Padding="0" Click="HorizontalLayoutBtn_Click" ToolTip="水平分布">
- <icon:PackIconModern Kind="BorderHorizontal"/>
- </Button>
- <Button Margin="4 0 0 0" Width="24" Padding="0" Click="VerticalLayoutBtn_Click" ToolTip="垂直分布">
- <icon:PackIconModern Kind="BorderVertical"/>
- </Button>
-
- <ToggleButton IsChecked="{Binding UseAutoAlignment, ElementName=cav, Mode=TwoWay}" ToolTip="使用对齐网格" Margin="4 0 0 0" Width="24" Padding="0">
- <icon:PackIconModern Kind="CellAlign"/>
- </ToggleButton>
-
- <Button Margin="16 0 0 0" Width="24" Padding="0" ToolTip="复制" Command="{Binding ElementName=cav, Path=CopySelectItemsCommand}">
- <icon:PackIconModern Kind="PageCopy"/>
- </Button>
- <Button Margin="4 0 0 0" Width="24" Padding="0" ToolTip="粘贴" Command="{Binding ElementName=cav, Path=PasteSelectItemsCommand}">
- <icon:PackIconModern Kind="ClipboardPaste"/>
- </Button>
- <Button Margin="4 0 0 0" Width="24" Padding="0" ToolTip="删除" Command="{Binding ElementName=cav, Path=DeleteSelectItemsCommand}">
- <icon:PackIconModern Kind="Delete"/>
- </Button>
-
- <Button x:Name="RunBtn" Margin="16 0 0 0" Padding="0" Click="RunBtn_Click" Command="{Binding RunUiCommand}">
- <Button.Style>
- <Style TargetType="Button">
- <Setter Property="Tag" Value="运行"/>
- <Setter Property="Content">
- <Setter.Value>
- <StackPanel Orientation="Horizontal" Margin="8 0">
- <icon:PackIconModern Kind="ControlPlay" VerticalAlignment="Center" Foreground="#28B60F" Width="8"/>
- <TextBlock Text="运行" Margin="4 0" VerticalAlignment="Center"/>
- </StackPanel>
- </Setter.Value>
- </Setter>
- <Style.Triggers>
- <DataTrigger Binding="{Binding IsRunning}" Value="True">
- <Setter Property="Tag" Value="停止"/>
- <Setter Property="Content">
- <Setter.Value>
- <StackPanel Orientation="Horizontal" Margin="8 0">
- <icon:PackIconModern Kind="ControlStop" VerticalAlignment="Center" Foreground="#B60F0F" Width="8"/>
- <TextBlock Text="停止" Margin="4 0" VerticalAlignment="Center"/>
- </StackPanel>
- </Setter.Value>
- </Setter>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </Button.Style>
- </Button>
-
- <Button x:Name="SaveBtn" Margin="16 0 0 0" Padding="0" Click="SaveBtn_Click">
- <StackPanel Orientation="Horizontal" Margin="8 0">
- <icon:PackIconModern Kind="Save" VerticalAlignment="Center" Width="12"/>
- <TextBlock Text="保存" Margin="4 0" VerticalAlignment="Center"/>
- </StackPanel>
- </Button>
-
- <Button x:Name="LoadBtn" Margin="4 0 0 0" Padding="0" Click="LoadBtn_Click">
- <StackPanel Orientation="Horizontal" Margin="8 0">
- <icon:PackIconModern Kind="DiskDownload" VerticalAlignment="Center" Width="14"/>
- <TextBlock Text="加载" Margin="4 0" VerticalAlignment="Center"/>
- </StackPanel>
- </Button>
-
- <Button x:Name="MNBtn" Margin="4 0 0 0" Padding="0" Click="MNBtn_Click">
- <StackPanel Orientation="Horizontal" Margin="8 0">
- <icon:PackIconModern Kind="MessageSend" VerticalAlignment="Center" Width="14"/>
- <TextBlock Text="模拟消息" Margin="4 0" VerticalAlignment="Center"/>
- </StackPanel>
- </Button>
-
- <ToggleButton x:Name="showCode" Click="showCode_Click" DockPanel.Dock="Right" Margin="4 0 0 0" Padding="4 0">
- <icon:Material Kind="FileCode"/>
- </ToggleButton>
-
- <Slider DockPanel.Dock="Right" Width="100" Maximum="16" Minimum="1" Margin="4 0 0 0"
- HorizontalContentAlignment="Center" Value="{Binding ElementName=cav,Path=GridPxiel}" ></Slider>
- <TextBlock DockPanel.Dock="Right" Text="对齐:" VerticalAlignment="Center" Margin="16 0 0 0"/>
-
- </DockPanel>
-
- <!--中间画布-->
- <Border BorderThickness="1" BorderBrush="{StaticResource AccentBrush}" Margin="4">
- <Border.Background>
- <ImageBrush ImageSource="/Images/bj.png" Stretch="UniformToFill"/>
- </Border.Background>
- <Grid>
- <Grid.ColumnDefinitions>
- <ColumnDefinition/>
- <ColumnDefinition Width="auto"/>
- </Grid.ColumnDefinitions>
-
- <ctl:CanvasPanel x:Name="cav" Visibility="{Binding CanvasPanelVisibility}" SelectedItem="{Binding CanSelectedItem,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" AllowDrop="True" RenderTransformOrigin="0.5,0.5" ClipToBounds="True" UseLayoutRounding="True" Focusable="True" SnapsToDevicePixels="True">
- <ctl:CanvasPanel.Background>
- <VisualBrush TileMode="Tile" Viewport="0,0,20,20" ViewportUnits="Absolute">
- <VisualBrush.Visual>
- <Rectangle Width="20" Height="20" StrokeDashArray="4,2" StrokeThickness="0.5" Stroke="#CBCBCB">
- <Rectangle.Style>
- <Style TargetType="{x:Type Rectangle}">
- <Style.Triggers>
- <DataTrigger Binding="{Binding UseAutoAlignment, RelativeSource={RelativeSource AncestorType={x:Type ctl:CanvasPanel}, Mode=FindAncestor}}" Value="True">
- <Setter Property="Visibility" Value="Visible"/>
- </DataTrigger>
- <DataTrigger Binding="{Binding UseAutoAlignment, RelativeSource={RelativeSource AncestorType={x:Type ctl:CanvasPanel}, Mode=FindAncestor}}" Value="False">
- <Setter Property="Visibility" Value="Collapsed"/>
- </DataTrigger>
- </Style.Triggers>
- </Style>
- </Rectangle.Style>
- </Rectangle>
- </VisualBrush.Visual>
- </VisualBrush>
- </ctl:CanvasPanel.Background>
-
- <ctl:CanvasPanel.RenderTransform>
- <TransformGroup>
- <TranslateTransform x:Name="CanvasTranslate"/>
- </TransformGroup>
- </ctl:CanvasPanel.RenderTransform>
- </ctl:CanvasPanel>
-
-
- <ctl:RunCanvas x:Name="runCanvas" Visibility="{Binding RunCanvasVisibility}" >
- </ctl:RunCanvas>
-
- <avae:TextEditor x:Name="codeEditor" ShowLineNumbers="True" Padding="4" WordWrap="True" IsReadOnly="True" SyntaxHighlighting="XML" BorderThickness="1 0 0 0" BorderBrush="{StaticResource ControlBorderBrush}" Grid.Column="1" Width="480" Visibility="{Binding ElementName=showCode, Path=IsChecked, Converter={x:Static s:BoolToVisibilityConverter.Instance}}"/>
- </Grid>
- </Border>
- </DockPanel>
-
- <GridSplitter HorizontalAlignment="Right" Grid.Column="1" VerticalAlignment="Stretch" Width="5" Background="Transparent"/>
-
- <!--右侧属性栏-->
- <Grid Grid.Column="2">
- <TabControl SelectedIndex="0">
- <TabItem Header="控制协议">
- <mypro:PropertyGrid x:Name="kzxy" SelectedObject="{Binding PropeObject}"
- Margin="10" ShowAdvancedOptions="True" ShowDescriptionByTooltip="True"
- FontSize="14" ShowTitle="False" ShowSortOptions="False" ShowSearchBox="False"
- CategoryGroupHeaderTemplate="{DynamicResource Category}">
- <mypro:PropertyGrid.EditorDefinitions>
- <!--EditorTemplateDefinition可添加多个-->
- <!--要修改编辑模板的属性的名称-->
- <mypro:EditorTemplateDefinition TargetProperties="点击事件,值改变事件,定时触发,勾选事件,取消勾选事件" >
- <mypro:EditorTemplateDefinition.EditingTemplate>
- <DataTemplate>
- <!--此处可自由发挥-->
- <Grid>
- <!-- Command生效: DataTemplate的DataContext指代不明确,需要改为父类的DataContext。 参数Value表示原对象-->
- <!--Command="{Binding Path=DataContext.PropeSetCommand ,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=xctk:PropertyGrid}}"-->
- <!--DataContext="{Binding DataContext, ElementName=window}" Command="{Binding PropeSetCommand}" CommandParameter="{Binding Value,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"-->
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="*" x:Name="key"/>
- <ColumnDefinition Width="35"/>
- </Grid.ColumnDefinitions>
- <TextBox Width="{Binding Width, ElementName=key}" Text="{Binding Value,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" TextWrapping="Wrap"></TextBox>
- <ToggleButton Grid.Column="1" Height="25" Content="编辑" Width="30" HorizontalAlignment="Left" Click="ToggleButton_Click"></ToggleButton>
- </Grid>
- </DataTemplate>
- </mypro:EditorTemplateDefinition.EditingTemplate>
- </mypro:EditorTemplateDefinition>
-
- <mypro:EditorTemplateDefinition TargetProperties="代码过滤脚本" >
- <mypro:EditorTemplateDefinition.EditingTemplate>
- <DataTemplate>
- <!--此处可自由发挥-->
- <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
- <TextBox Text="{Binding Value,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="True" TextWrapping="Wrap"></TextBox>
- </ScrollViewer>
- </DataTemplate>
- </mypro:EditorTemplateDefinition.EditingTemplate>
- </mypro:EditorTemplateDefinition>
-
- <mypro:EditorTemplateDefinition TargetProperties="设备解析变量" >
- <mypro:EditorTemplateDefinition.EditingTemplate>
- <DataTemplate>
- <!--此处可自由发挥-->
- <Grid>
- <ComboBox Grid.Column="1" Height="25" Width="{Binding Width, ElementName=com}" Text="{Binding Value,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
- ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window},Path=DataContext.DevValueList}"
- ></ComboBox>
- </Grid>
- </DataTemplate>
- </mypro:EditorTemplateDefinition.EditingTemplate>
- </mypro:EditorTemplateDefinition>
-
- <mypro:EditorTemplateDefinition TargetProperties="设备名称" >
- <mypro:EditorTemplateDefinition.EditingTemplate>
- <DataTemplate>
- <!--此处可自由发挥-->
- <Grid>
- <ComboBox Grid.Column="1" Height="25" Width="{Binding Width, ElementName=com}" Text="{Binding Value,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
- ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window},Path=DataContext.DevNameList}"
- ></ComboBox>
- </Grid>
- </DataTemplate>
- </mypro:EditorTemplateDefinition.EditingTemplate>
- </mypro:EditorTemplateDefinition>
-
- <mypro:EditorTemplateDefinition TargetProperties="文本,文本1,标题,变量" >
- <mypro:EditorTemplateDefinition.EditingTemplate>
- <DataTemplate>
- <!--此处可自由发挥-->
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition/>
- <RowDefinition/>
- </Grid.RowDefinitions>
- <Grid Margin="0,5,0,5">
- <Grid.ColumnDefinitions>
- <ColumnDefinition Width="40" />
- <ColumnDefinition Width="*" x:Name="key"/>
- <ColumnDefinition Width="*" x:Name="Text"/>
- </Grid.ColumnDefinitions>
- <TextBlock>绑定:</TextBlock>
- <ComboBox x:Name="namebox" DropDownOpened="namebox_DropDownOpened" Grid.Column="1" Height="25" IsTextSearchEnabled="True" IsEditable="True" Tag="{Binding Text, ElementName=valuebox}" Width="{Binding Width, ElementName=key}" TextBoxBase.TextChanged="ComboBoxName_TextChanged"
- ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window},Path=DataContext.DevNameList}">
- </ComboBox>
- <ComboBox x:Name="valuebox" DropDownOpened="valuebox_DropDownOpened" Grid.Column="2" Height="25" IsTextSearchEnabled="True" IsEditable="True" Tag="{Binding Text, ElementName=namebox}" Width="{Binding Width, ElementName=Text}" TextBoxBase.TextChanged="ComboBoxValue_TextChanged"
- ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Window},Path=DataContext.DevValueList}"/>
- </Grid>
- <TextBox Grid.Row="2" x:Name="wenben" Width="{Binding Width, ElementName=Text}" Padding="5" Text="{Binding Value,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" TextWrapping="Wrap"></TextBox>
-
- </Grid>
- </DataTemplate>
- </mypro:EditorTemplateDefinition.EditingTemplate>
- </mypro:EditorTemplateDefinition>
- </mypro:PropertyGrid.EditorDefinitions>
- </mypro:PropertyGrid>
- </TabItem>
- <TabItem Header="控件样式">
- <mypro:PropertyGrid x:Name="dsdsdsd"
- Margin="10" ShowAdvancedOptions="True" ShowDescriptionByTooltip="True"
- FontSize="14" ShowTitle="False" ShowSortOptions="False" ShowSearchBox="False"
- CategoryGroupHeaderTemplate="{DynamicResource Category}" SelectedObject="{Binding SelectedItem,ElementName=cav,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />
- </TabItem>
- </TabControl>
- </Grid>
- </Grid>
- </Window>
|