BOB/ProcessManager/MainWindow.xaml
2025-11-19 11:33:56 +08:00

80 lines
4.1 KiB
XML

<mah:MetroWindow x:Class="ProcessManager.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="hMetroWindowttp://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:prism="http://prismlibrary.com/"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
xmlns:mah="http://metro.mahapps.com/winfx/xaml/controls"
xmlns:local="clr-namespace:ProcessManager"
mc:Ignorable="d"
Title="MainWindow" Height="600" Width="1000">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding WindowLoadedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<materialDesign:DialogHost x:Name="MainDialogHost">
<ItemsControl ItemsSource="{Binding ConfigList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel IsItemsHost="True"
Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<materialDesign:Card Tag="{Binding DataContext, RelativeSource={RelativeSource AncestorType=Window}}"
Width="220"
Margin="5"
Padding="8"
Height="230"
Background="DarkSlateGray"
Foreground="white">
<StackPanel>
<!-- 标题 -->
<TextBlock Margin="16,16,12,8"
FontSize="16"
Text="{Binding Title}" />
<!-- 设备列表自动生成对应 CheckBox -->
<ItemsControl ItemsSource="{Binding DeviceList}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<CheckBox Margin="16,4,16,0"
Content="{Binding DeviceName}"
IsChecked="{Binding IsEnabled,Mode=TwoWay}"
Style="{StaticResource MaterialDesignUserForegroundCheckBox}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Separator Style="{StaticResource MaterialDesignLightSeparator}" />
</StackPanel>
<materialDesign:Card.ContextMenu>
<ContextMenu DataContext="{Binding RelativeSource={RelativeSource Self}, Path=PlacementTarget.Tag}">
<MenuItem Header="编辑"
Command="{Binding EditCommand}"
CommandParameter="{Binding PlacementTarget.DataContext.Title,
RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
<MenuItem Header="启动"
Command="{Binding StartCommand}"
CommandParameter="{Binding PlacementTarget.DataContext.Title,
RelativeSource={RelativeSource AncestorType=ContextMenu}}" />
</ContextMenu>
</materialDesign:Card.ContextMenu>
</materialDesign:Card>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</materialDesign:DialogHost>
</mah:MetroWindow>