﻿<hb:SimpleMaskControl x:Class="Plugin.DODriverControl.SingleControl"
             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:local="clr-namespace:Plugin.DODriverControl"
             mc:Ignorable="d"
             xmlns:hb="clr-namespace:HMI.Base;assembly=HMI.Base"
            xmlns:uic="clr-namespace:HMI.UI.Converter;assembly=HMI.UI"
            xmlns:ui="clr-namespace:HMI.UI;assembly=HMI.UI"
            xmlns:mdi="clr-namespace:HMI.UI.MDI;assembly=HMI.UI"
            xmlns:pw="https://opensource.panuon.com/wpf"
            xmlns:pu="https://opensource.panuon.com/wpf-ui"
            xmlns:dp="clr-namespace:HMI.UI.DpUtil;assembly=HMI.UI"
             Background="#FFF"
             Loaded="UserControl_Loaded"
             d:DesignHeight="450" d:DesignWidth="800">
    <hb:SimpleMaskControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <pu:StyleDictionary Includes="TabControl" />
                <ResourceDictionary Source="/HMI.UI;component/Style/PanuonListView.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <Style TargetType="GroupBox">
                <Setter Property="FontSize" Value="14"/>
                <Setter Property="HeaderTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <TextBlock Text="{Binding }" FontSize="12" TextWrapping="Wrap"/>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </ResourceDictionary>
    </hb:SimpleMaskControl.Resources>
    <Grid dp:GridHelper.Space="8">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <DockPanel>
            <StackPanel dp:StackPanelHelper.ChildSpace="10" DockPanel.Dock="Right" Orientation="Horizontal">
                <Button Style="{StaticResource AddBtn}" x:Name="addBtn" Click="Button_Click"/>
                <Button Style="{StaticResource RfhBtn}" x:Name="rfhBtn" Click="Button_Click"/>
                <Button Style="{StaticResource ExportBtn}" x:Name="exportBtn" Click="Button_Click"/>
                <Button Style="{StaticResource ImportBtn}" x:Name="importBtn" Click="Button_Click"/>
                <!--<Button Style="{StaticResource DelBtn}"/>-->
            </StackPanel>

            <StackPanel Orientation="Horizontal" VerticalAlignment="Center" dp:StackPanelHelper.ChildSpace="10">
                <pu:FormGroup FontSize="18" Header="控制器状态" Orientation="Horizontal">
                    <ui:LightBall Size="20" Value="{Binding ConnectStatus}">
                        <ui:LightBall.Style>
                            <Style TargetType="ui:LightBall">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding ConnectStatus}" Value="True">
                                        <Setter Property="Content" Value="已连接"/>
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding ConnectStatus}" Value="False">
                                        <Setter Property="Content" Value="未连接"/>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </ui:LightBall.Style>
                    </ui:LightBall>
                </pu:FormGroup>
                <Button Style="{StaticResource ResetBtn}" 
            x:Name="reConnectBtn" Click="Button_Click" Content="重新连接"
            IsEnabled="{Binding ConnectStatus,Converter={StaticResource reverseBool}}"/>
                <Button Style="{StaticResource SettingBtn}" x:Name="configBtn" Click="Button_Click"/>
            </StackPanel>
        </DockPanel>

        <TabControl Grid.Row="1"
pu:TabControlHelper.HeaderPanelAlignment="Stretch"
pu:TabControlHelper.ItemsBackground="{DynamicResource VerBar}"
pu:TabControlHelper.ItemsForeground="#FFFFFF"
pu:TabControlHelper.ItemsFontSize="14"
pu:TabControlHelper.ItemsHeight="30"
pu:TabControlHelper.ItemsHorizontalHeaderAlignment="Left"
pu:TabControlHelper.ItemsHoverBackground="{DynamicResource SecondPrimaryColor}"
pu:TabControlHelper.ItemsHoverForeground="#FFFFFF"
pu:TabControlHelper.ItemsPadding="20,0,0,0"
pu:TabControlHelper.ItemsRibbonLineCornerRadius="4"
pu:TabControlHelper.ItemsRibbonLineMargin="0,5,0,5"
pu:TabControlHelper.ItemsRibbonLineThickness="4"
pu:TabControlHelper.ItemsRibbonLineVisibility="Visible"
pu:TabControlHelper.ItemsSelectedBackground="#FFF"
pu:TabControlHelper.ItemsSelectedRibbonLineBrush="#FFFFFF"
pu:TabControlHelper.ItemsSelectedRibbonLineThickness="2"
pu:TabControlHelper.ItemsWidth="100" >
            <TabControl.Template>
                <ControlTemplate TargetType="{x:Type TabControl}">
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <Border BorderThickness="1,1,1,0" BorderBrush="#acacac" Background="{DynamicResource VerBar}" Padding="2,2,10,0">
                            <TabPanel x:Name="HeaderPanel" Grid.Row="0" Panel.ZIndex="1" IsItemsHost="True"/>
                        </Border>

                        <Border Grid.Row="1" BorderBrush="{TemplateBinding BorderBrush}" 
                    BorderThickness="1,0,1,1" Background="{TemplateBinding Background}">
                            <ContentPresenter x:Name="PART_SelectedContentHost" ContentSource="SelectedContent"/>
                        </Border>
                    </Grid>
                </ControlTemplate>
            </TabControl.Template>

            <TabItem Header="DIO">
                <Grid dp:GridHelper.Space="5" Background="#f7f7f7">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>
                    <Label Grid.Row="0" Grid.Column="0">DI</Label>
                    <Label Grid.Row="0" Grid.Column="1">DO</Label>

                    <ScrollViewer Grid.Row="1" Grid.Column="0"
                                  Style="{StaticResource DefaultScrollViewer}"
                                  VerticalScrollBarVisibility="Auto">
                        <WrapPanel Background="#FFF"  x:Name="diWrap"/>
                    </ScrollViewer>
                    <ScrollViewer Grid.Row="1" Grid.Column="1" 
                                  Style="{StaticResource DefaultScrollViewer}"
                                  VerticalScrollBarVisibility="Auto">
                        <WrapPanel Background="#FFF" x:Name="doWrap"/>
                    </ScrollViewer>
                </Grid>
            </TabItem>
            <TabItem Header="列表">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <ListView Grid.Row="1" Style="{StaticResource DefaultListTable}" x:Name="table"
                      ItemsSource="{Binding Datasource}"
                      VirtualizingPanel.IsContainerVirtualizable="True"
VirtualizingPanel.IsVirtualizing="True" 
VirtualizingPanel.VirtualizationMode="Standard">
                        <ListView.Resources>
                            <Style x:Key="RowLink" TargetType="Button" BasedOn="{StaticResource LinkButton}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Path=IsMouseOver,
                RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}" 
         Value="True">
                                        <Setter Property="Foreground" Value="#FFF"/>
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Path=IsSelected,
       RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}" 
Value="True">
                                        <Setter Property="Foreground" Value="#FFF"/>
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>

                            <Style x:Key="DeleteLink" TargetType="Button" BasedOn="{StaticResource DangerLinkButton}">
                                <Setter Property="Content" Value="{DynamicResource App.Delete}"/>
                            </Style>

                            <Style x:Key="EditLink" TargetType="Button" BasedOn="{StaticResource RowLink}">
                                <Setter Property="Content" Value="{DynamicResource App.Edit}"/>
                            </Style>
                        </ListView.Resources>
                        <ListView.View>
                            <GridView AllowsColumnReorder="False">
                                <GridViewColumn Width="60" Header="#">
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <TextBlock Text="{Binding Converter={StaticResource lvRowNumber},
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ListViewItem,AncestorLevel=1}}"/>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>

                                <GridViewColumn Width="700">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource doc.name}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}" 
                                                           Text="{Binding Name}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="100">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource doc.address}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}" 
   Text="{Binding Address}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="120">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="DIO"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}" 
                                                   Text="{Binding Dio}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="200">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource doc.pressDownValue}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}" 
                                                   Text="{Binding PressDownValue}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="200">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource doc.pressDownText}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}" 
                                                   Text="{Binding PressDownText}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="200">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource doc.pressUpValue}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}" 
                                                   Text="{Binding PressUpValue}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="200">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource doc.pressUpText}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <Border Style="{StaticResource CellBorder}">
                                                <TextBlock Style="{StaticResource ListTableTextBlock}" 
                   Text="{Binding PressUpText}"/>
                                            </Border>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                                <GridViewColumn Width="120">
                                    <GridViewColumn.Header>
                                        <TextBlock Text="{DynamicResource App.Opt}"/>
                                    </GridViewColumn.Header>
                                    <GridViewColumn.CellTemplate>
                                        <DataTemplate>
                                            <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="10">
                                                <Button x:Name="editBtn" Style="{StaticResource EditLink}" 
                Click="Button_Click" Tag="{Binding }"/>

                                                <Button x:Name="delBtn" Style="{StaticResource DeleteLink}" 
                Click="Button_Click" Tag="{Binding }"/>
                                            </StackPanel>
                                        </DataTemplate>
                                    </GridViewColumn.CellTemplate>
                                </GridViewColumn>
                            </GridView>
                        </ListView.View>
                    </ListView>
                    <!--<DataGrid Grid.Row="1" Style="{StaticResource DefaultDataGrid}" ItemsSource="{Binding Datasource}">
                        <DataGrid.Columns>
                            <DataGridTemplateColumn Header="#" CanUserResize="False">
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding Converter={StaticResource rowNumber},
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGridRow},AncestorLevel=1}}"/>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                            <DataGridTextColumn Width="*" Binding="{Binding Name}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource doc.name}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTextColumn Width="*" Binding="{Binding Address}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource doc.address}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>
                            <DataGridTextColumn Width="*" Binding="{Binding Dio}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="DIO"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>

                            <DataGridTextColumn Width="*" Binding="{Binding PressDownValue}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource doc.pressDownValue}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>

                            <DataGridTextColumn Width="*" Binding="{Binding PressDownText}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource doc.pressDownText}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>

                            <DataGridTextColumn Width="*" Binding="{Binding PressUpValue}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource doc.pressUpValue}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>

                            <DataGridTextColumn Width="*" Binding="{Binding PressUpText}">
                                <DataGridTextColumn.Header>
                                    <TextBlock Text="{DynamicResource doc.pressUpText}"/>
                                </DataGridTextColumn.Header>
                            </DataGridTextColumn>

                            <DataGridTemplateColumn Width="110" IsReadOnly="True" CanUserResize="False">
                                <DataGridTemplateColumn.Header>
                                    <TextBlock Text="{DynamicResource App.Opt}"/>
                                </DataGridTemplateColumn.Header>
                                <DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal" dp:StackPanelHelper.ChildSpace="10">
                                            <Button x:Name="editBtn" Style="{StaticResource EditLink}" 
                                                    Click="Button_Click" DataContext="{Binding }"/>

                                            <Button x:Name="delBtn" Style="{StaticResource DeleteLink}" 
                                                    Click="Button_Click" DataContext="{Binding }"/>
                                        </StackPanel>
                                    </DataTemplate>
                                </DataGridTemplateColumn.CellTemplate>
                            </DataGridTemplateColumn>
                        </DataGrid.Columns>
                    </DataGrid>-->
                </Grid>
            </TabItem>
        </TabControl>
    </Grid>
</hb:SimpleMaskControl>
