2026-01-26 18:56:53 +09:00

159 lines
9.7 KiB
XML

<UserControl x:Class="AuroraPLC.Views.UCPLCWordSmall"
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:AuroraPLC.Views"
xmlns:uic="clr-namespace:AuroraUIComponent;assembly=AuroraUIComponent"
xmlns:mah ="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:uiControl="clr-namespace:AuroraUIComponent.UserControls;assembly=AuroraUIComponent"
xmlns:behavior="http://schemas.microsoft.com/xaml/behaviors" xmlns:view="clr-namespace:Aurora.View;assembly=Aurora" d:DataContext="{d:DesignInstance Type=local:UCPLCWordViewModel}"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800"
Background="#121212" FontSize="12" Padding="2"
x:Name="uc">
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<view:SharedResourceDictionary Source="pack://application:,,,/AuroraUIComponent;component/Style/Generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<behavior:Interaction.Triggers>
<behavior:PropertyChangedTrigger Binding="{Binding IsVisible, ElementName=uc}">
<behavior:InvokeCommandAction Command="{Binding CMD_VisibleChanged}" CommandParameter="{Binding IsVisible, ElementName=uc}"/>
</behavior:PropertyChangedTrigger>
</behavior:Interaction.Triggers>
<Grid Margin="0">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="Auto"/>
<RowDefinition/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- Word Input -->
<!-- WordInput Contents -->
<Border Grid.Row="0" Margin="0 0 0 0" Style="{StaticResource StGroupBorder}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center"
Foreground="#dddddd" Margin="0 10"
FontSize="15" FontWeight="Bold"
Text="{Binding [WordInputsTitle], Source={StaticResource langTokens}}"/>
</Grid>
<DataGrid Grid.Row="1" ItemsSource="{Binding DigitalInputs}" Margin="0 0 0 5"
SelectedItem="{Binding SelectedInputItem}"
AutoGenerateColumns="False" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
BorderThickness="1"
DataGrid.RowStyle ="{StaticResource RowStyle}" ColumnHeaderStyle="{StaticResource StDataGridHeaderStyle}"
CanUserAddRows="False" CanUserDeleteRows="False" IsReadOnly="True" CanUserSortColumns="false"
HeadersVisibility="Column">
<DataGrid.Columns>
<DataGridTextColumn Width="1*" Header="{Binding [Address], Source={StaticResource langTokens}}" Binding="{Binding Address}"
FontSize="12"/>
<DataGridTextColumn Width="5*" Header="{Binding [Description], Source={StaticResource langTokens}}" Binding="{Binding Description}"
FontSize="12"/>
<DataGridTextColumn Width="1.1*" Header="{Binding [Status], Source={StaticResource langTokens}}" Binding="{Binding Word}"
FontSize="12"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Border>
<!-- Word Output -->
<!-- Word Output Contents -->
<Border Grid.Row="2" Margin="0 0 0 0" Style="{StaticResource StGroupBorder}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid>
<StackPanel Orientation="Horizontal" Margin="15 10 0 10">
<Border BorderBrush="Black" BorderThickness="1" Width="65" Margin="0,0,5,0">
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center"
Foreground="White" Text="{Binding SelectedWordAddress}"/>
</Border>
<TextBox x:Name="txtWordValue" Width="60" Height="40"
Text="{Binding WORD_DATA, StringFormat={}{0:0}}"/>
<Button HorizontalAlignment="Left" Margin="5 0"
Height="40" Padding="20 0"
Command="{Binding CMD_ChangeValue}" Content="{Binding [Change], Source={StaticResource langTokens}}"
IsEnabled="{Binding ChangeButtonEnable}"
Style="{StaticResource StButtonAccent}"/>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center"
Foreground="#dddddd" Margin="20 0"
FontSize="15" FontWeight="Bold"
Text="{Binding [WordOutputsTitle], Source={StaticResource langTokens}}"/>
</StackPanel>
<!--
<TextBlock Grid.Column="1" VerticalAlignment="Center" HorizontalAlignment="Center"
Foreground="#dddddd" Margin="0 20"
FontSize="20" FontWeight="Bold"
Text="Word Output"/>
-->
</Grid>
<DataGrid Grid.Row="1" Grid.Column="1" ItemsSource="{Binding DigitalOutputs}" Margin="0 0 0 5" SelectedItem="{Binding SelectedOutputItem}"
AutoGenerateColumns="False" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"
CanUserAddRows="False" CanUserDeleteRows="False" IsReadOnly="True" CanUserSortColumns="false" BorderThickness="1"
DataGrid.RowStyle ="{StaticResource RowStyle}" ColumnHeaderStyle="{StaticResource StDataGridHeaderStyle}"
HeadersVisibility="Column">
<DataGrid.Columns>
<DataGridTextColumn Width="1*" Header="{Binding [Address], Source={StaticResource langTokens}}" Binding="{Binding Address}"
FontSize="12"/>
<DataGridTextColumn Width="5*" Header="{Binding [Description], Source={StaticResource langTokens}}" Binding="{Binding Description}"
FontSize="12"/>
<DataGridTextColumn Width="1.1*" Header="{Binding [Status], Source={StaticResource langTokens}}" Binding="{Binding Word}"
FontSize="12"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Border>
<!-- WordInput group box -->
<GroupBox Header="DataViewType" Grid.Row="1" Style="{StaticResource StGroupBoxNoMargin}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<uiControl:UCRadioGroup Grid.Column="0" GroupBoxName="InputDataViewType"
DefaultChecked ="0"
PanelType="StackHorizontal"
ItemList="{Binding Path= DataContext.DataViewTypeList, ElementName=uc}"
SelectedItem="{Binding DataContext.DataViewTypeInput, ElementName=uc }"
GroupMargin ="0 0" RadioButtonMargin="5 0"/>
<CheckBox Grid.Column="1" Margin="10 0 0 0"
Content="Hex" IsChecked="{Binding IsCheckedDataViewHexInput, FallbackValue= false}"
mah:CheckBoxHelper.CheckBackgroundFillChecked="{DynamicResource BLGRedCustomDark}"/>
</Grid>
</GroupBox>
<!-- WordOutput group box -->
<GroupBox Header="DataViewType" Grid.Row="3" Style="{StaticResource StGroupBoxNoMargin2}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<uiControl:UCRadioGroup GroupBoxName="OutputDataViewType"
DefaultChecked ="0"
PanelType="StackHorizontal"
ItemList="{Binding Path= DataContext.DataViewTypeList, ElementName=uc}"
SelectedItem="{Binding DataContext.DataViewTypeOutput, ElementName=uc}"
GroupMargin ="0 0" RadioButtonMargin="5 0"/>
<CheckBox Content="Hex" IsChecked="{Binding IsCheckedDataViewHexOutput, FallbackValue= false, Mode=TwoWay}"
Grid.Column="1" Margin="10 0 0 0"
mah:CheckBoxHelper.CheckBackgroundFillChecked="{DynamicResource BLGRedCustomDark}"/>
</Grid>
</GroupBox>
</Grid>
</UserControl>