wpf PropertyGrid 显示List<string,class>

本文介绍了如何通过自定义TypeConverterMyListTypeConverter和PropertyDescriptor来让PropertyGrid支持List<class>类型的属性,包括StringListPropertyDescriptor和MyClassListPropertyDescriptor的实现,以及在Windows应用中的实际使用示例。

PropertyGrid默认情况下可以显示和修改List<string>类型的属性,但不支持List<class>类型。不过你可以通过自定义TypeConverter来扩展PropertyGrid的功能,使其支持显示和修改List<class>类型的属性。

以下是一个简单的示例:

public class MyListTypeConverter : TypeConverter
{
    public override bool GetPropertiesSupported(ITypeDescriptorContext context)
    {
        return true;
    }

    public override PropertyDescriptorCollection GetProperties(
        ITypeDescriptorContext context, 
        object value, 
        Attribute[] attributes)
    {
        var properties = new List<PropertyDescriptor>();

        if (value is List<string> stringList)
        {
            for (int i = 0; i < stringList.Count; i++)
            {
                properties.Add(new StringListPropertyDescriptor(stringList, i));
            }
        }
        else if (value is List<MyClass> myClassList)
        {
            for (int i = 0; i < myClassList.Count; i++)
            {
                pr
<UserControl x:Class="Gumming.DispenseView" 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" mc:Ignorable="d" xmlns:local="clr-namespace:Gumming" xmlns:tool="clr-namespace:GummingCommon;assembly=GummingCommon" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" d:DesignHeight="700" d:DesignWidth="1000" Background="Transparent" x:Name="rootControl"> <UserControl.Resources> <tool:RadioButtonConverter x:Key="RadioConverter"/> <tool:BooleanToOpacityConverter x:Key="OpacityConverter"/> <tool:EditorTextConverter x:Key="TextBrushConverter"/> <tool:EditorBorderConverter x:Key="BorderBrushConverter"/> <tool:PathTypeToThemeConverter x:Key="PathTypeConverter"/> <tool:StepStyleConverter x:Key="StepStyleConverter"/> <tool:StepTextConverter x:Key="StepBrushConverter"/> <DataTemplate x:Key="PortFieldMapping"> <Border Name="ItemBorder" Height="30" BorderThickness="0" BorderBrush="Black"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="120"></ColumnDefinition> <ColumnDefinition Width="100"></ColumnDefinition> <ColumnDefinition Width="100"></ColumnDefinition> <ColumnDefinition Width="100"></ColumnDefinition> <ColumnDefinition Width="120"></ColumnDefinition> <ColumnDefinition Width="200"></ColumnDefinition> </Grid.ColumnDefinitions> <Border BorderThickness="1,0,0,1" BorderBrush="{DynamicResource BaseBrushBorder}" > <TextBlock Text="{Binding StepName}" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="2" FontSize="12" Foreground="{DynamicResource FontBrush1}" ></TextBlock> </Border> <Border Grid.Column="1" BorderThickness="1,0,0,1" BorderBrush="{DynamicResource BaseBrushBorder}"> <Grid> <Border> <Border.Background> <MultiBinding Converter="{StaticResource StepBrushConverter}"> <Binding Path="SelecedMode.Tag" /> <Binding Path="Copy.Mode" /> </MultiBinding> </Border.Background> </Border> <ComboBox BorderThickness="0" ItemsSource="{Binding Path=Modes}" SelectedItem="{Binding SelecedMode, Mode=TwoWay}"> <ComboBox.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding ComboCode, Mode=TwoWay}" /> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox> </Grid> </Border> <Border Grid.Column="2" BorderThickness="1,0,0,1" BorderBrush="{DynamicResource BaseBrushBorder}"> <local:FloatBox MaxValue="10000" Style="{DynamicResource ListViewTextBoxStyle}" Text="{Binding IntervalTime, Mode=TwoWay,UpdateSourceTrigger=LostFocus,StringFormat=F1}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalContentAlignment="Center" FontSize="14" > <TextBox.Background> <MultiBinding Converter="{StaticResource StepBrushConverter}"> <Binding Path="IntervalTime" /> <Binding Path="Copy.IntervalTime" /> </MultiBinding> </TextBox.Background> </local:FloatBox> </Border> <Border Grid.Column="3" BorderThickness="1,0,0,1" BorderBrush="{DynamicResource BaseBrushBorder}"> <local:IntBox MaxValue="1000" Style="{DynamicResource ListViewTextBoxStyle}" Text="{Binding DispenseCount, Mode=TwoWay,UpdateSourceTrigger=LostFocus,StringFormat=F0}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalContentAlignment="Center" FontSize="14" > <TextBox.Background> <MultiBinding Converter="{StaticResource StepBrushConverter}"> <Binding Path="DispenseCount" /> <Binding Path="Copy.DispenseCount" /> </MultiBinding> </TextBox.Background> </local:IntBox> </Border> <Border Grid.Column="4" BorderThickness="1,0,0,1" BorderBrush="{DynamicResource BaseBrushBorder}"> <local:FloatBox MaxValue="1000" Style="{DynamicResource ListViewTextBoxStyle}" Text="{Binding DispenseInterval, Mode=TwoWay,UpdateSourceTrigger=LostFocus,StringFormat=F1}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalContentAlignment="Center" FontSize="14" > <TextBox.Background> <MultiBinding Converter="{StaticResource StepBrushConverter}"> <Binding Path="DispenseInterval" /> <Binding Path="Copy.DispenseInterval" /> </MultiBinding> </TextBox.Background> </local:FloatBox> </Border> <Border Grid.Column="5" BorderThickness="1,0,1,1" BorderBrush="{DynamicResource BaseBrushBorder}"> <local:FloatBox MaxValue="1000" Style="{DynamicResource ListViewTextBoxStyle}" Text="{Binding DispenseInterval, Mode=TwoWay,UpdateSourceTrigger=LostFocus,StringFormat=F1}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalContentAlignment="Center" FontSize="14" > <TextBox.Background> <MultiBinding Converter="{StaticResource StepBrushConverter}"> <Binding Path="DispenseInterval" /> <Binding Path="Copy.DispenseInterval" /> </MultiBinding> </TextBox.Background> </local:FloatBox> </Border> <!--<Border Grid.Column="5" BorderThickness="1,0,1,1" BorderBrush="{DynamicResource BaseBrushBorder}"> <local:FloatBox MaxValue="18000" Style="{DynamicResource ListViewTextBoxStyle}" Text="{Binding DispenseTime, Mode=TwoWay,UpdateSourceTrigger=LostFocus,StringFormat=F1}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" VerticalContentAlignment="Center" FontSize="14" > <TextBox.Background> <MultiBinding Converter="{StaticResource StepBrushConverter}"> <Binding Path="DispenseTime" /> <Binding Path="Copy.DispenseTime" /> </MultiBinding> </TextBox.Background> </local:FloatBox> </Border>--> </Grid> </Border> <DataTemplate.Triggers> <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListViewItem}}, Path=IsSelected}" Value="True"> <Setter TargetName="ItemBorder" Property="Background" Value="#DDD"/> </DataTrigger> </DataTemplate.Triggers> </DataTemplate> </UserControl.Resources> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="160"></ColumnDefinition> <ColumnDefinition Width="10"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> </Grid.ColumnDefinitions> <ListBox Grid.Column="0" tool:TouchScrolling.IsEnabled="True" ScrollViewer.HorizontalScrollBarVisibility="Disabled" PreviewKeyDown="listBox_PreviewKeyDown" x:Name="LstFormula" Background="Transparent" BorderBrush="{DynamicResource DefaultBorderBrush}" BorderThickness="1" ItemsSource="{Binding StationCodes}" SelectedItem="{Binding SelectedStationCode, Mode=TwoWay}" ItemContainerStyle="{DynamicResource PatternListBoxItem}" Height="500" VerticalAlignment="Top"> <ListBox.ItemTemplate> <DataTemplate> <TextBlock TextAlignment="Left" VerticalAlignment="Center" Text="{Binding ComboName}" TextTrimming="CharacterEllipsis"> <TextBlock.ToolTip> <TextBlock Text="{Binding ComboName}"></TextBlock> </TextBlock.ToolTip> </TextBlock> </DataTemplate> </ListBox.ItemTemplate> <i:Interaction.Triggers> <i:EventTrigger EventName="SelectionChanged"> <tool:ExecuteCommandAction Command="{Binding SelectFlowCommand}" CommandParameter="{Binding SelectedItem,ElementName=LstFormula}"/> </i:EventTrigger> </i:Interaction.Triggers> </ListBox> <Grid Grid.Column="2"> <Grid.RowDefinitions> <RowDefinition Height="0"></RowDefinition> <RowDefinition Height="30"></RowDefinition> <RowDefinition Height="*"></RowDefinition> <RowDefinition Height="5"></RowDefinition> <RowDefinition Height="30"></RowDefinition> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> </Grid.ColumnDefinitions> <Grid Grid.Row="1" Grid.Column="0" > <Grid.ColumnDefinitions> <ColumnDefinition Width="120"></ColumnDefinition> <ColumnDefinition Width="100"></ColumnDefinition> <ColumnDefinition Width="100"></ColumnDefinition> <ColumnDefinition Width="100"></ColumnDefinition> <ColumnDefinition Width="120"></ColumnDefinition> <ColumnDefinition Width="200"></ColumnDefinition> </Grid.ColumnDefinitions> <Border BorderThickness="1,1,0,1" BorderBrush="{DynamicResource BaseBrushBorder}" Background="Transparent" > <TextBlock Text="喷头" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2" FontSize="12" Foreground="{DynamicResource FontBrush1}" ></TextBlock> </Border> <Border Grid.Column="1" BorderThickness="1,1,0,1" BorderBrush="{DynamicResource BaseBrushBorder}" Background="Transparent" > <TextBlock Text="打胶模式" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2" FontSize="12" Foreground="{DynamicResource FontBrush1}" ></TextBlock> </Border> <Border Grid.Column="2" BorderThickness="1,1,0,1" BorderBrush="{DynamicResource BaseBrushBorder}" Background="Transparent" > <TextBlock Text="间隔时间[min]" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2" FontSize="12" Foreground="{DynamicResource FontBrush1}" ></TextBlock> </Border> <Border Grid.Column="3" BorderThickness="1,1,0,1" BorderBrush="{DynamicResource BaseBrushBorder}" Background="Transparent" > <TextBlock Text="打胶次数" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2" FontSize="12" Foreground="{DynamicResource FontBrush1}" ></TextBlock> </Border> <Border Grid.Column="4" BorderThickness="1,1,0,1" BorderBrush="{DynamicResource BaseBrushBorder}" Background="Transparent" > <TextBlock Text="喷洒间隔时间[s]" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2" FontSize="12" Foreground="{DynamicResource FontBrush1}" ></TextBlock> </Border> <Border Grid.Column="5" BorderThickness="1,1,1,1" BorderBrush="{DynamicResource BaseBrushBorder}" Background="Transparent" > <TextBlock Text="单次间隔时间[S]" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2" FontSize="12" Foreground="{DynamicResource FontBrush1}" ></TextBlock> </Border> <!--<Border Grid.Column="5" BorderThickness="1" BorderBrush="{DynamicResource BaseBrushBorder}" Background="Transparent" > <TextBlock Text="喷洒量[P/S]" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="2" FontSize="12" Foreground="{DynamicResource FontBrush1}" ></TextBlock> </Border>--> </Grid> <ListView Grid.Row="2" x:Name="FieldMappingView" tool:TouchScrolling.IsEnabled="True" ItemTemplate="{DynamicResource PortFieldMapping}" ItemsSource="{Binding Dispenses}" Template="{DynamicResource ListViewItemMapping}" ItemContainerStyle="{DynamicResource ListViewItemContainerStyle}" BorderThickness="0" IsHitTestVisible="True" SelectedItem="{Binding SelectedDispense, Mode=TwoWay}" SelectionMode="Extended" Foreground="{DynamicResource FontBrush4}" IsEnabled="{Binding AllowEdit}"> <i:Interaction.Triggers> <i:EventTrigger EventName="SelectionChanged"> <tool:ExecuteCommandAction Command="{Binding SelectStepCommand}" CommandParameter="{Binding SelectedItems, ElementName=FieldMappingView}"/> </i:EventTrigger> </i:Interaction.Triggers> </ListView> <Grid Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> </Grid.ColumnDefinitions> <TextBlock Text="流片名称:" HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="14"></TextBlock> <TextBox Grid.Column="2" Text="{Binding StationCode}" IsEnabled="{Binding AllowEdit}" HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="14"></TextBox> <TextBlock Grid.Column="4" Text="创建人:" HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="14"></TextBlock> <TextBox Grid.Column="6" IsEnabled="False" Text="{Binding CreateBy}" HorizontalAlignment="Stretch" VerticalAlignment="Center" FontSize="14"></TextBox> </Grid> <Grid Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="3"></ColumnDefinition> <ColumnDefinition Width="80"></ColumnDefinition> <ColumnDefinition Width="*"></ColumnDefinition> </Grid.ColumnDefinitions> <Button Grid.Column="0" Margin="2" FontSize="15" Style="{DynamicResource CommonIconButton}" Command="{Binding AllowCommand}" Content="编辑"></Button> <Button Grid.Column="2" Margin="2" FontSize="15" IsEnabled="{Binding AllowEdit}" Style="{DynamicResource CommonIconButton}" Command="{Binding DisabledCommand}" Content="取消编辑"></Button> <Button Grid.Column="4" Margin="2" FontSize="15" IsEnabled="{Binding AllowEdit}" Style="{DynamicResource CommonIconButton}" Command="{Binding SaveStepCommand}" Content="保存"></Button> </Grid> </Grid> </Grid> </UserControl> 我想把上面这个页面改成显示下面的这个的样子Dummy Dispense(预打胶) 创建人:______ 创建时间:______ 喷嘴 模式 次数[x1] 间隔时间[min] 单次间隔时间[s] 清洗时间[s] 计片清洗片数 PR1 None/Lot Head/Interval/Both下拉选其一 1 0 0 null且不可输入 null且不可输入 PR2 None/Lot Head/Interval/Both下拉选其一 1 0 0 null且不可输入 null且不可输入 PR3 None/Lot Head/Interval/Both下拉选其一 1 0 0 null且不可输入 null且不可输入 CCR None/Lot Head/Interval/Both下拉选其一 1 0 0 0 1
11-12
<Window x:Class="S1.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:S1" mc:Ignorable="d" Icon="/A1/工具箱/视图图片/Logo/登录_微信登录.png" MinHeight="720" MinWidth="1280" WindowStyle="None" AllowsTransparency="False" WindowStartupLocation="CenterScreen" Title="MainWindow" Height="720" Width="1280"> <!--标题栏属性--> <WindowChrome.WindowChrome> <WindowChrome UseAeroCaptionButtons="False" NonClientFrameEdges="None" CaptionHeight="15" ResizeBorderThickness="0" GlassFrameThickness="0"/> </WindowChrome.WindowChrome> <!--Main窗体UI--> <Grid> <Grid.RowDefinitions> <RowDefinition Height="40"/> <RowDefinition Height="100*"/> <RowDefinition Height="27"/> </Grid.RowDefinitions> <!--标题栏--> <DockPanel Grid.Row="0" Grid.Column="0" Style="{StaticResource A__DockPanel}"> <Image Source="/A1/工具箱/视图图片/Logo/logo2.png" Width="35" Height="25" Margin="20,0,0,0" DockPanel.Dock="Left"/> <TextBlock Text="杭州微纳智感科技AOI检测系统" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="15,0,0,0" Foreground="White" FontSize="14" FontWeight="Bold"/> <StackPanel Orientation="Horizontal" Margin="0,0,0,0" DockPanel.Dock="Right" HorizontalAlignment="Right"> <Button x:Name="LoginBtu" Style="{StaticResource LoginButStyle}" Command="{Binding LoginCmd}"> <Button.Background> <ImageBrush ImageSource="{Binding Picture}" Stretch="UniformToFill"/> </Button.Background> </Button> <Button x:Name="MinBtn" Style="{StaticResource MinBtnStyle}" Content="—" Command="{Binding MinFormCmd}"/> <Button x:Name="MaxBtn" Style="{StaticResource MaxBtnStyle}" Content="□" Command="{Binding MaxFormCmd}"/> <Button x:Name="CloseBtn" Style="{StaticResource CloseBtnStyle}" Content="×" Command="{Binding ExitFormCmd}"/> </StackPanel> </DockPanel> <!--状态栏--> <Grid Grid.Row="2" Grid.Column="0" Background="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"> <!-- 主内容区域 --> <StatusBar Background="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"> <StatusBar.ItemsPanel> <ItemsPanelTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> </Grid> </ItemsPanelTemplate> </StatusBar.ItemsPanel> <!-- 左侧内容(可选) --> <StatusBarItem> <StackPanel Orientation="Horizontal"> <!--Image Margin="3,0,3,0" Source="/Data/List/Logo/气泡.png" Width="15" Height="15"/--> <TextBlock Margin="5,0,0,0" Text="🗨 就绪" Foreground="White"/> </StackPanel> </StatusBarItem> <!-- 中间填充(可选) --> <StatusBarItem Grid.Column="1"> <!-- 中间内容(留空或添加其他控件) --> </StatusBarItem> <!-- 日期时间绑定 --> <StatusBarItem Grid.Column="2"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right"> <TextBlock Margin="0" Text="[用户: " Foreground="White" FontWeight="Bold" FontSize="11"/> <TextBlock Margin="0" Text="{Binding YongHu}" Foreground="White" FontWeight="Bold" FontSize="11"/> <TextBlock Margin="0" Text="]" Foreground="White" FontWeight="Bold" FontSize="11"/> <TextBlock Margin="8,0,5,0" Text="||" Foreground="White" FontWeight="Bold" FontSize="11"/> <TextBlock Margin="5,0,0,0" Text="时间:" Foreground="White" FontWeight="Bold" FontSize="11"/> <TextBlock Text="{Binding CurrentDateTime}" Margin="3,0,5,0" Foreground="White" FontWeight="Bold" FontSize="11"/> </StackPanel> </StatusBarItem> </StatusBar> </Grid> <!--客户栏--> <Grid Grid.Row="1" Grid.Column="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="3"/> <ColumnDefinition Width="30"/> <ColumnDefinition Width="100*"/> <ColumnDefinition Width="3"/> </Grid.ColumnDefinitions> <Grid Grid.Row="0" Grid.Column="0" Background="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> <Grid Grid.Row="0" Grid.Column="5" Background="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> <!--功能区--> <Grid Grid.Row="0" Grid.Column="1" Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}"> <Grid.RowDefinitions> <RowDefinition Height="auto"/> <RowDefinition Height="100*"/> <RowDefinition Height="auto"/> </Grid.RowDefinitions> <StackPanel Grid.Row="0" Grid.Column="0"> <Button x:Name="ToggleButton" ToolTip="展开菜单" Click="ToggleButton_Click" Margin="0,5,0,5"> <Button.Background> <ImageBrush ImageSource="/A1/工具箱/视图图片/Logo/展开1.png" Stretch="UniformToFill"/> </Button.Background> </Button> <Button x:Name="Text" ToolTip="右键:文件路径" Margin="0,5,0,5"> <Button.Background> <ImageBrush ImageSource="/A1/工具箱/视图图片/Logo/文件夹.png" Stretch="UniformToFill"/> </Button.Background> <Button.ContextMenu > <ContextMenu Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"> <MenuItem Header="打开图片" Command="{Binding RunningloadFormCmd}"/> <MenuItem Header="打开数据" Command="{Binding RunParamloadFormCmd}"/> <MenuItem Header="打开配置" Command="{Binding RunParamloadFormCmd}"/> </ContextMenu> </Button.ContextMenu> </Button> <Button ToolTip="右键:视觉VPP" Margin="0,5,0,5"> <Button.Background> <ImageBrush ImageSource="/A1/工具箱/视图图片/Logo/截图 (3).png" Stretch="UniformToFill"/> </Button.Background> <Button.ContextMenu > <ContextMenu Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"> <MenuItem Header="左工位VPP" Command="{Binding SizeVppCmd1}"/> <MenuItem Header="右工位VPP" Command="{Binding SizeVppCmd2}"/> <MenuItem Header="右工位灰度" Command="{Binding SizeVppCmd3}"/> <MenuItem Header="右工位灰度" Command="{Binding SizeVppCmd4}"/> </ContextMenu> </Button.ContextMenu> </Button> </StackPanel> <StackPanel Grid.Row="2" Grid.Column="0"> <Button ToolTip="右键:打开设置" Margin="0,0,0,10"> <Button.Background> <ImageBrush ImageSource="/A1/工具箱/视图图片/Logo/设置.png" Stretch="UniformToFill"/> </Button.Background> <Button.ContextMenu > <ContextMenu Background="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"> <MenuItem Header="设置MES参数" Command="{Binding ManualCmd}"/> <MenuItem Header="设置系统参数" Command="{Binding SysParamloadFormCmd}"/> <MenuItem Header="设置运行参数" Command="{Binding RunningloadFormCmd}"/> <MenuItem Header="设置相机参数" Command="{Binding RunParamloadFormCmd}"/> <MenuItem Header="设置光源参数" Command="{Binding LightloadFormCmd}"/> <MenuItem Header="设置缺陷参数" Command="{Binding DefectListReadCmd}"/> </ContextMenu> </Button.ContextMenu> </Button> </StackPanel> </Grid> <!--客户区--> <Grid Grid.Row="0" Grid.Column="2"> <DockPanel LastChildFill="True"> <!-- 左侧折叠菜单 --> <Border x:Name="MenuPanel" DockPanel.Dock="Left" Width="2" Background="#FFE1E1E1" BorderThickness="0,0,2,0" BorderBrush="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"> <Grid> <!-- 菜单内容区域 --> <ScrollViewer VerticalScrollBarVisibility="Auto" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"> <StackPanel x:Name="MenuContent" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/> </ScrollViewer> </Grid> </Border> <!-- 主内容区域 --> <Grid Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="70*"/> <ColumnDefinition Width="3"/> <ColumnDefinition Width="30*"/> </Grid.ColumnDefinitions> <GridSplitter Grid.Row="0" Grid.Column="1" Width="2" Grid.RowSpan="3" Background="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" HorizontalAlignment="Center" Margin="0" /> <!-- 检测尺寸缺陷显示区 --> <Grid Grid.Row="0" Grid.Column="0"> <TabControl Grid.Row="0" Grid.Column="0"> <TabItem Header="主界面" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"> <!--Lift And Right--> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="50*"/> <ColumnDefinition Width="1*"/> <ColumnDefinition Width="50*"/> </Grid.ColumnDefinitions> <GridSplitter Grid.Row="0" Grid.Column="1" Width="3" Grid.RowSpan="2" Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}" HorizontalAlignment="Center" /> <!--Lift--> <Grid Grid.Row="0" Grid.Column="0"> <Grid.RowDefinitions> <RowDefinition Height="12*"/> <RowDefinition Height="1*"/> <RowDefinition Height="5*"/> <RowDefinition Height="1*"/> <RowDefinition Height="83*"/> </Grid.RowDefinitions> <GridSplitter Grid.Row="1" Grid.Column="0" Height="4" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,0,0,1" /> <GridSplitter Grid.Row="3" Grid.Column="0" Height="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,1" /> <Grid Grid.Row="0" Grid.Column="0" > <Label x:Name="LeftInfoLabel" Width="auto" Height="auto" FontFamily="宋体" Background="{Binding ShowResultState.ShowState1.ShowBrush}" Content="{Binding ShowResultState.ShowState1.ShowName}" FontSize="50" VerticalContentAlignment="Center" HorizontalContentAlignment="Center" ></Label> </Grid> <Grid Grid.Row="2" Grid.Column="0"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="7*"/> <ColumnDefinition Width="10*"/> <ColumnDefinition Width="80*"/> </Grid.ColumnDefinitions> <TextBox Grid.Row="0" Grid.Column="0" Text="{Binding leftTongdao}" Margin="3,2,3,2" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> <Label Grid.Row="0" Grid.Column="1" Content="左SN:" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> <TextBox Grid.Row="0" Grid.Column="2" Text="{Binding leftCode}" Margin="3,3,3,3" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> </Grid> </Grid> <Grid Grid.Row="4" Grid.Column="0"> <DataGrid Name="DataListGrid1" CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" HeadersVisibility="All" ItemsSource="{Binding leftSizeTypeList}" Grid.ColumnSpan="2" Margin="0" > <DataGrid.Columns> <DataGridTextColumn Header="ID" Binding="{Binding SizeID}" IsReadOnly= "True" Width="2*"/> <DataGridTextColumn Header="Name" Binding="{Binding SizeName}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Standard" Binding="{Binding SizeStandard}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Upper" Binding="{Binding SizeUpper}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Lower" Binding="{Binding SizeLower}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Value" Binding="{Binding SizeValue}" IsReadOnly= "True" Width="3*"/> <DataGridTemplateColumn Header="Result" Width="4*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBox Width="75" Height="25" BorderThickness="0" Text="{Binding SizeRes}" Foreground="White" Background="{Binding BackColor}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </Grid> </Grid> <!--Right--> <Grid Grid.Row="0" Grid.Column="2"> <Grid.RowDefinitions> <RowDefinition Height="12*"/> <RowDefinition Height="1*"/> <RowDefinition Height="5*"/> <RowDefinition Height="1*"/> <RowDefinition Height="83*"/> </Grid.RowDefinitions> <GridSplitter Grid.Row="1" Grid.Column="0" Height="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,1" /> <GridSplitter Grid.Row="3" Grid.Column="0" Height="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,1" /> <Grid Grid.Row="0" Grid.Column="0"> <Label x:Name="RightInfoLabel" Width="auto" Height="auto" Margin="0" FontFamily="宋体" Background="{Binding ShowResultState.ShowState2.ShowBrush}" Content="{Binding ShowResultState.ShowState2.ShowName}" FontSize="50" VerticalContentAlignment="Center" HorizontalContentAlignment="Center"></Label> </Grid> <Grid Grid.Row="2" Grid.Column="0"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="7*"/> <ColumnDefinition Width="10*"/> <ColumnDefinition Width="80*"/> </Grid.ColumnDefinitions> <TextBox Grid.Row="0" Grid.Column="0" Text="{Binding rightTongdao}" Margin="3,2,3,2" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> <Label Grid.Row="0" Grid.Column="1" Content="右SN:" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"></Label> <TextBox Grid.Row="0" Grid.Column="2" Text="{Binding rightCode}" Margin="1,1,1,1" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> </Grid> </Grid> <Grid Grid.Row="4" Grid.Column="0"> <DataGrid Name="DataListGrid2" CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" HeadersVisibility="All" ItemsSource="{Binding rightSizeTypeList}" Grid.ColumnSpan="2" Margin="0" > <DataGrid.Columns> <DataGridTextColumn Header="ID" Binding="{Binding SizeID}" IsReadOnly= "True" Width="2*"/> <DataGridTextColumn Header="Name" Binding="{Binding SizeName}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Standard" Binding="{Binding SizeStandard}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Upper" Binding="{Binding SizeUpper}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Lower" Binding="{Binding SizeLower}" IsReadOnly= "True" Width="3*"/> <DataGridTextColumn Header="Value" Binding="{Binding SizeValue}" IsReadOnly= "True" Width="3*"/> <DataGridTemplateColumn Header="Result" Width="4*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBox Width="75" Height="25" BorderThickness="0" Text="{Binding SizeRes}" Foreground="White" Background="{Binding BackColor}"/> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </Grid> </Grid> </Grid> </TabItem> </TabControl> </Grid> <!-- 实时监控/生产数据/数据统计 --> <Grid Grid.Row="0" Grid.Column="2"> <TabControl> <TabItem Header="实时监控"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="30*"/> <RowDefinition Height="3"/> <RowDefinition Height="30*"/> <RowDefinition Height="3"/> <RowDefinition Height="30*"/> </Grid.RowDefinitions> <GridSplitter Grid.Row="1" Grid.Column="0" Height="2" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,1" /> <GridSplitter Grid.Row="3" Grid.Column="0" Height="2" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" Margin="0,1" /> <Grid Grid.Row="0" Grid.Column="0"> </Grid> <Grid Grid.Row="2" Grid.Column="0"> </Grid> <ScrollViewer Grid.Column="0" Grid.Row="3" Background="White" BorderBrush="AliceBlue" Margin="3" Grid.RowSpan="2" > <TextBlock x:Name="SystemMessage" TextWrapping="Wrap" Text="{Binding MsgInfo}" Background="White" Foreground="Black" /> </ScrollViewer> </Grid> </TabItem> <TabItem Header="生产数据"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="50*"/> <ColumnDefinition Width="3"/> <ColumnDefinition Width="50*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="50*"/> <RowDefinition Height="3"/> <RowDefinition Height="50*"/> <RowDefinition Height="3"/> <RowDefinition Height="50*"/> </Grid.RowDefinitions> <GridSplitter Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3" Height="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" /> <GridSplitter Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="3" Height="3" VerticalAlignment="Center" HorizontalAlignment="Stretch" Background="LightGray" /> <GridSplitter Grid.Column="1" Grid.Row="0" Width="3" Grid.RowSpan="5" Background="LightGray" HorizontalAlignment="Center" /> <WindowsFormsHost Grid.Row="0" Grid.Column="0" Name="ChartShow1" /> <WindowsFormsHost Grid.Row="0" Grid.Column="2" Name="ChartShow2" /> <WindowsFormsHost Grid.Row="2" Grid.Column="0" Name="ChartShow3" /> <WindowsFormsHost Grid.Row="2" Grid.Column="2" Name="ChartShow4" /> <WindowsFormsHost Grid.Row="4" Grid.Column="0" Name="ChartShow5" /> <WindowsFormsHost Grid.Row="4" Grid.Column="2" Name="ChartShow6" /> </Grid> </TabItem> <TabItem Header="数据统计"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="30"/> <RowDefinition Height="3"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!--日期选择--> <Grid Grid.Row="0" Height="auto"> <Grid.ColumnDefinitions> <ColumnDefinition Width="2*"/> <ColumnDefinition Width="1"/> <ColumnDefinition Width="2*"/> <ColumnDefinition Width="1"/> <ColumnDefinition Width="1*"/> </Grid.ColumnDefinitions> <DatePicker/> <ComboBox Grid.Column="2" SelectedIndex="{Binding LGDateSelectIndex}" HorizontalContentAlignment="Center" VerticalContentAlignment="Center" Grid.ColumnSpan="1" Margin="1"> <ComboBoxItem Content="白班合计"/> <ComboBoxItem Content="晚班合计"/> <ComboBoxItem Content="白晚班合计"/> <ComboBoxItem Content="月合计"/> <ComboBoxItem Content="年合计"/> </ComboBox> <!--查询按钮--> <Grid Grid.Column="4"> <Button Margin="1" Content="查询" Width="auto" Height="auto" Command="{Binding SearchProductDataCmd}" Foreground="{DynamicResource {x:Static SystemColors.ActiveCaptionTextBrushKey}}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> </Grid> </Grid> <!--数据统计显示--> <Grid Grid.Row="2"> <DataGrid Name="ProductSearchGrid" CanUserAddRows="False" CanUserDeleteRows="False" AutoGenerateColumns="False" HeadersVisibility="All" ItemsSource="{Binding ProductSearchGridLists}" SelectedIndex="{Binding ProductSearchSelectIndex}" FontSize="13" Grid.ColumnSpan="2" Margin="1" > <DataGrid.Columns> <DataGridTextColumn Header="Time" Binding="{Binding Time}" IsReadOnly="True" Width="30*"/> <DataGridTextColumn Header="Total" Binding="{Binding Total}" IsReadOnly="True" Width="25*"/> <DataGridTextColumn Header="OK" Binding="{Binding OK}" IsReadOnly="True" Width="25*"/> <DataGridTextColumn Header="NG" Binding="{Binding NG}" IsReadOnly="True" Width="25*"/> </DataGrid.Columns> </DataGrid> </Grid> </Grid> </TabItem> </TabControl> </Grid> </Grid> </DockPanel> </Grid> </Grid> </Grid> </Window> DatePicker 的弹出日历标题显示太窄
11-01
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白话Learning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值