ui/App.xaml
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="pXLabs MS Update Tool" SizeToContent="Height" Width="1326" WindowStartupLocation="CenterScreen"> <Grid Margin="0" VerticalAlignment="Top"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <!-- Menu --> <RowDefinition Height="Auto"/> <!-- Top Controls --> <RowDefinition Height="210"/> <!-- DataGrid and Output --> <RowDefinition Height="Auto"/> <!-- CMUpdate/Update/Policy --> <RowDefinition Height="400"/> <!-- Output --> <RowDefinition Height="Auto"/> <!-- Status Bar --> </Grid.RowDefinitions> <!-- MenuStrip --> <Menu Grid.Row="0"> <MenuItem Header="_Intune"> <MenuItem Header="Invoke Device Sync" x:Name="menuItem_InvokeDeviceSync"/> <MenuItem Header="Get Device Status" x:Name="menuItem_GetDeviceStatus"/> <MenuItem Header="Get Compliance State" x:Name="menuItem_GetComplianceState"/> <MenuItem Header="Get Assigned Configurations" x:Name="menuItem_GetAssignedConfigurations"/> <MenuItem Header="Get Update Policy" x:Name="menuItem_GetIntuneUpdatePolicy"/> </MenuItem> <MenuItem Header="_Theme"> <MenuItem Header="Dark" x:Name="menuItem_DarkTheme"/> <MenuItem Header="Light" x:Name="menuItem_LightTheme"/> <MenuItem Header="Monokai" x:Name="menuItem_MonokaiTheme"/> <MenuItem Header="Nord" x:Name="menuItem_NordTheme"/> <MenuItem Header="EverForest" x:Name="menuItem_EverForestTheme"/> </MenuItem> </Menu> <!-- Top Control Groups --> <Grid Grid.Row="1" Margin="10"> <!-- Computer Group --> <GroupBox Header="Computer" Margin="0,0,0,0" HorizontalAlignment="Left" Width="360"> <StackPanel Orientation="Horizontal"> <TextBox x:Name="textbox_ComputerName" Width="134" FontSize="12" Margin="5"/> <Button x:Name="button_Ping" Content="Ping" Width="92" Margin="5"/> <Button x:Name="button_Clear" Content="Clear" Width="92" Margin="5"/> </StackPanel> </GroupBox> <!-- Device Tools Group --> <GroupBox Header="Device Tools" Margin="0,0,0,0" HorizontalAlignment="Right" Width="560"> <StackPanel Orientation="Horizontal"> <Button x:Name="button_EventViewer" Content="Event Viewer" Width="92" Margin="5"/> <Button x:Name="button_ExplorerHere" Content="Explorer here" Width="92" Margin="5"/> <Button x:Name="button_PSSessionHere" Content="PSSession here" Width="92" Margin="5"/> <Button x:Name="button_CheckServices" Content="Check Services" Width="92" Margin="5" /> <Button x:Name="button_ResetWUComponents" Content="Reset WU Components" Width="130" Margin="5"/> </StackPanel> </GroupBox> </Grid> <!-- DataGrid --> <Grid Grid.Row="2" Margin="10"> <Grid.RowDefinitions> <RowDefinition Height="2*"/> <!-- DataGrid --> <RowDefinition Height="Auto"/> <!-- ProgressBar --> </Grid.RowDefinitions> <DataGrid x:Name="datagridview_UpdateList" Grid.Row="0" Margin="0,0,0,5" AutoGenerateColumns="True" IsReadOnly="True"> <!-- <DataGrid.RowStyle> <Style TargetType="DataGridRow"> <Setter Property="Foreground" Value="{DynamicResource DataGridForeground}" /> <Setter Property="Background"> <Setter.Value> <SolidColorBrush Color="{DynamicResource DataGridRowBackgroundColor}" /> </Setter.Value> </Setter> <Style.Triggers> <DataTrigger Binding="{Binding IsRunning}" Value="True"> <DataTrigger.EnterActions> <BeginStoryboard> <Storyboard RepeatBehavior="Forever" AutoReverse="True"> <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" To="{DynamicResource HighlightColorColor}" Duration="0:0:0.5" /> </Storyboard> </BeginStoryboard> </DataTrigger.EnterActions> <DataTrigger.ExitActions> <BeginStoryboard> <Storyboard> <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" To="{DynamicResource DataGridRowBackgroundColor}" Duration="0:0:0.2" /> </Storyboard> </BeginStoryboard> </DataTrigger.ExitActions> </DataTrigger> </Style.Triggers> </Style> </DataGrid.RowStyle> --> <DataGrid.ContextMenu> <ContextMenu> <MenuItem Header="Install Update" x:Name="menuItem_InstallUpdate"/> </ContextMenu> </DataGrid.ContextMenu> </DataGrid> <ProgressBar x:Name="progressbar_Status" Grid.Row="1" Height="20" Minimum="0" Maximum="100" Value="0" Margin="0" Visibility="Collapsed" /> </Grid> <!-- Middle Control Groups --> <Grid Grid.Row="3" Margin="10"> <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch"> <!-- CMUpdate Group --> <GroupBox x:Name="groupbox_CMUpdate" Header="MECM Update" Margin="0,0,0,10" Width="430"> <StackPanel Orientation="Horizontal"> <Button x:Name="button_UpdateScan" Content="Update Scan" Width="130" Margin="5"> <Button.Resources> <Storyboard x:Key="PulseAnimation" RepeatBehavior="Forever" AutoReverse="True"> <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1.0" To="0.5" Duration="0:0:1"/> </Storyboard> </Button.Resources> </Button> <Button x:Name="button_UpdateEvaluation" Content="Update Evaluation" Width="130" Margin="5"/> <Button x:Name="button_RestartCMAgent" Content="Restart CM Agent" Width="130" Margin="5"/> </StackPanel> </GroupBox> <!-- Windows Update Group --> <GroupBox x:Name="groupbox_MSUpdate" Header="MS Windows Update (Autopatch)" Margin="0,0,0,10" Width="430"> <StackPanel Orientation="Horizontal"> <Button x:Name="button_GetUpdateHistory" Content="Get Update History" Width="130" Margin="5"/> <Button x:Name="button_GetUpdates" Content="Get Updates" Width="130" Margin="5"> <Button.Resources> <Storyboard x:Key="PulseAnimation" RepeatBehavior="Forever" AutoReverse="True"> <DoubleAnimation Storyboard.TargetProperty="Opacity" From="1.0" To="0.5" Duration="0:0:1"/> </Storyboard> </Button.Resources> </Button> <Button x:Name="button_GetSettings" Content="Get Settings" Width="130" Margin="5"/> </StackPanel> </GroupBox> <!-- Policy Group --> <GroupBox x:Name="groupbox_Policy" Header="Policy" Margin="0,0,0,10" Width="430"> <StackPanel Orientation="Horizontal"> <Button x:Name="button_RefreshGPO" Content="Refresh GPO" Width="130" Margin="5"/> <Button x:Name="button_GetIntunePolicy" Content="Get Intune Policy" Width="130" Margin="5"/> <Button x:Name="button_RefreshCMPolicy" Content="Refresh CM Policy" Width="130" Margin="5"/> </StackPanel> </GroupBox> </StackPanel> </Grid> <!-- Output --> <Grid Grid.Row="4" Margin="10"> <Grid.RowDefinitions> <RowDefinition Height="2*"/> </Grid.RowDefinitions> <RichTextBox x:Name="richtextbox_Output" Grid.Row="0" Margin="0,0,0,5" VerticalScrollBarVisibility="Auto" FontFamily="Consolas" FontSize="12" IsReadOnly="True"/> </Grid> <!-- StatusStrip --> <StatusBar Grid.Row="5" Margin="0"> <StatusBarItem> <TextBlock Text="Status: Ready" x:Name="toolstripstatuslabel_Status"/> </StatusBarItem> <StatusBarItem> <TextBlock Text="SessionType: ..." x:Name="toolstripstatuslabel_SessionType"/> </StatusBarItem> <StatusBarItem> <TextBlock Text="UpdateMethod: ..." x:Name="toolstripstatuslabel_UpdateMethod"/> </StatusBarItem> <StatusBarItem> <TextBlock Text="DiskSpace: ..." x:Name="toolstripstatuslabel_Diskspace"/> </StatusBarItem> </StatusBar> </Grid> </Window> |