Assets/ADLookups.xaml

<Window x:Name="ADLookupsWindow" x:Class="ADLookups_v2.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:ADLookups_v2"
        mc:Ignorable="d"
        Title="ADLookups" MinWidth="625" MinHeight="555" Width="625" Height="555" WindowStartupLocation="CenterOwner">
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="C:\temp\DarkTheme.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Grid Style="{DynamicResource GridBackground}">
        <TabControl Margin="0,20,0,25" TabStripPlacement="Left">
            <TabItem x:Name="FindObjectTabItem" Header="Find Object">
                <Grid Margin="5,5,5,5">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="75"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="85"/>
                        <ColumnDefinition Width="110"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="30"></RowDefinition>
                        <RowDefinition Height="30"></RowDefinition>
                        <RowDefinition Height="*"></RowDefinition>
                        <RowDefinition Height="90"></RowDefinition>
                    </Grid.RowDefinitions>
                    <Label Grid.Column="0" Grid.Row="0" x:Name="FindTabQueryTextLabel" Content="Query Text:" HorizontalAlignment="Right"/>
                    <TextBox Grid.Column="1" Grid.Row="0" x:Name="FindTabQueryTextTextBox" TextWrapping="Wrap" TabIndex="1" VerticalAlignment="Center"/>
                    <Label Grid.Column="2" Grid.Row="0" x:Name="FindTabObjectTypeLabel" Content="Object Type:" HorizontalAlignment="Right"/>
                    <ComboBox Grid.Column="3" Grid.Row="0" x:Name="FindTabObjectTypeComboBox" TabIndex="2" VerticalAlignment="Center" SelectedIndex="0" >
                        <ComboBoxItem Content="User"/>
                        <ComboBoxItem Content="Computer"/>
                        <ComboBoxItem Content="Group"/>
                        <ComboBoxItem Content="Service Account"/>
                        <ComboBoxItem Content="Contact"/>
                    </ComboBox>
                    <Label Grid.Column="2" Grid.Row="1" Content="Search Style" HorizontalAlignment="Right"></Label>
                    <ComboBox x:Name="FindTabSearchStyleComboBox" Grid.Column="3" Grid.Row="1" VerticalAlignment="Center" SelectedIndex="0">
                        <ComboBoxItem Content="*Search*"/>
                        <ComboBoxItem Content="*Search"></ComboBoxItem>
                        <ComboBoxItem Content="Search*"></ComboBoxItem>
                    </ComboBox>
                    <DataGrid x:Name="FindTabDataGrid" Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="4" SelectionMode="Single" SelectionUnit="Cell" HeadersVisibility="Column">
                        <DataGrid.ContextMenu>
                            <ContextMenu>
                                <MenuItem x:Name="FindTabCopyContextMenuItem" Header="Copy to clipboard"/>
                            </ContextMenu>
                        </DataGrid.ContextMenu>
                    </DataGrid>
                    <GroupBox Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="3" Header="Output">
                        <TextBox x:Name="FindTabInformationTextBox" IsReadOnly="True" TextWrapping="WrapWithOverflow" BorderThickness="0,0,0,0" />
                    </GroupBox>
 
                </Grid>
            </TabItem>
            <TabItem x:Name="GeneralUserTabItem" Header="General User">
                <Grid Margin="5,5,5,5">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="30"></RowDefinition>
                        <RowDefinition Height="*"></RowDefinition>
                    </Grid.RowDefinitions>
                    <StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Right">
                        <Label Content="SamAccountName" HorizontalAlignment="Right" VerticalAlignment="Center"/>
                        <ComboBox x:Name="UserTabSamAccountNameComboBox" VerticalAlignment="Center" Margin="0,0,2,0" IsEditable="True" MinWidth="150"/>
                        <Button x:Name="UserTabLookupButton" Content="Lookup" VerticalAlignment="Center" Padding="15,1,15,1" Margin="2,0,2,0"/>
                    </StackPanel>
                    <TabControl Grid.Row="1">
                        <TabItem Header="Queried Information">
                            <Grid Margin="5,5,5,5">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto"></RowDefinition>
                                    <RowDefinition Height="Auto"></RowDefinition>
                                    <RowDefinition Height="Auto"></RowDefinition>
                                </Grid.RowDefinitions>
                                <GroupBox Grid.Row="0" Header="Active Directory Information">
                                    <Grid>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="Auto"/>
                                            <RowDefinition Height="Auto"/>
                                            <RowDefinition Height="Auto"/>
                                            <RowDefinition Height="Auto"/>
                                            <RowDefinition Height="Auto"/>
                                            <RowDefinition Height="Auto"/>
                                            <RowDefinition Height="Auto"/>
                                        </Grid.RowDefinitions>
                                        <Label Grid.Column="0" Grid.Row="0" Content="First Name" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabFirstNameTextBox" Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" IsReadOnly="True"/>
 
                                        <Label Grid.Column="2" Grid.Row="0" Content="Last Name" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabLastNameTextBox" Grid.Column="3" Grid.Row="0" VerticalAlignment="Center" IsReadOnly="True"/>
 
                                        <Label Grid.Column="0" Grid.Row="1" Content="Distinguished Name" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabDNTextBox" Grid.Column="1" Grid.Row="1" Grid.ColumnSpan="3" VerticalAlignment="Center" IsReadOnly="True"/>
 
                                        <StackPanel Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Left" Grid.Column="1" Grid.ColumnSpan="3">
                                            <CheckBox x:Name="UserTabEnabledCheckBox" Content="Enabled" Focusable="False" IsHitTestVisible="False"/>
                                            <CheckBox x:Name="UserTabLockedOutCheckBox" Content="Locked Out" Margin="10,0,0,0" Focusable="False" IsHitTestVisible="False"/>
                                        </StackPanel>
 
                                        <Label Grid.Column="0" Grid.Row="3" Content="User Principal Name" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabUPNTextBox" Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" IsReadOnly="True"/>
 
                                        <Label Grid.Column="0" Grid.Row="4" Content="Department" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabDepartmentTextBox" Grid.Column="1" Grid.Row="4" VerticalAlignment="Center" IsReadOnly="True" Grid.ColumnSpan="2"/>
 
                                        <Label Grid.Row="5" Content="Office" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabOfficeTextBox" Grid.Column="1" Grid.Row="5" VerticalAlignment="Center" IsReadOnly="True"/>
 
                                        <Label Grid.Column="2" Grid.Row="3" Content="Office Phone" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabOfficePhoneTextBox" Grid.Column="3" Grid.Row="3" VerticalAlignment="Center" IsReadOnly="True"/>
 
                                        <Label Grid.Column="0" Grid.Row="6" Content="Title" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabTitleTextBox" Grid.Column="1" Grid.Row="6" VerticalAlignment="Center" IsReadOnly="True" Grid.ColumnSpan="2"/>
 
                                        <Label Grid.Column="2" Grid.Row="5" Content="Description" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabDescriptionTextBox" Grid.Column="3" Grid.Row="5" VerticalAlignment="Center" IsReadOnly="True"/>
                                    </Grid>
                                </GroupBox>
                                <GroupBox Grid.Row="1" Header="Manager Information" Margin="0,5,0,0">
                                    <Grid>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="auto"/>
                                            <RowDefinition Height="auto"/>
                                        </Grid.RowDefinitions>
 
                                        <Label Grid.Column="0" Grid.Row="0" Content="SamAccountName" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabManagerSamAccountNameTextBox" Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" IsReadOnly="True"/>
 
                                        <Label Grid.Column="2" Grid.Row="0" Content="UPN" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabManagerUPNTextBox" Grid.Column="3" Grid.Row="0" VerticalAlignment="Center" IsReadOnly="True"/>
 
                                        <Label Grid.Column="0" Grid.Row="1" Content="Name" HorizontalAlignment="Right"/>
                                        <TextBox x:Name="UserTabManagerNameTextBox" Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" IsReadOnly="True"/>
                                    </Grid>
                                </GroupBox>
                                 
                            </Grid>
                        </TabItem>
                        <TabItem Header="Password Status">
                            <GroupBox Header="Account Status" Margin="5,5,5,5">
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="*"/>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="Auto"/>
                                        <RowDefinition Height="Auto"/>
                                        <RowDefinition Height="Auto"/>
                                        <RowDefinition Height="Auto"/>
                                        <RowDefinition Height="Auto"/>
                                    </Grid.RowDefinitions>
                                    <Label Grid.Column="0" Grid.Row="0" Content="Password Last Set" HorizontalAlignment="Right"/>
                                    <TextBox x:Name="UserTabPasswordLastSetTextBox" Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" IsReadOnly="True" Focusable="False" IsHitTestVisible="False"/>
 
                                    <Label Grid.Column="0" Grid.Row="1" Content="Password Expiration" HorizontalAlignment="Right"/>
                                    <TextBox x:Name="UserTabPasswordExpirationTextBox" Grid.Column="1" Grid.Row="1" VerticalAlignment="Center" IsReadOnly="True" Focusable="False" IsHitTestVisible="False"/>
 
                                    <Label Grid.Column="0" Grid.Row="2" Content="Last Bad Attempt" HorizontalAlignment="Right"/>
                                    <TextBox x:Name="UserTabLastBadAttemptTextBox" Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" IsReadOnly="True" Focusable="False" IsHitTestVisible="False"/>
 
                                    <Label Grid.Column="0" Grid.Row="3" Content="Last Logon Date" HorizontalAlignment="Right"/>
                                    <TextBox x:Name="UserTabLastLogonDateTextBox" Grid.Column="1" Grid.Row="3" VerticalAlignment="Center" IsReadOnly="True" Focusable="False" IsHitTestVisible="False"/>
                                    <StackPanel Grid.Column="1" Orientation="Horizontal" Grid.Row="4" Grid.ColumnSpan="2">
                                        <CheckBox x:Name="UserTabPasswordExpiredCheckBox" Content="Password Expired" Focusable="False" IsHitTestVisible="False" Height="20"/>
                                        <CheckBox x:Name="UserTabPasswordNeverExpiresCheckBox" Content="Password Never Expires" Focusable="False" IsHitTestVisible="False" Height="20" Margin="10,0,0,0"/>
                                    </StackPanel>
                                </Grid>
                            </GroupBox>
                        </TabItem>
                        <TabItem Header="Actions">
                            <Grid Margin="5,5,5,5">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="auto"/>
                                    <ColumnDefinition Width="auto"/>
                                    <ColumnDefinition Width="*"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="auto"/>
                                    <RowDefinition Height="auto"/>
                                    <RowDefinition Height="auto"/>
                                </Grid.RowDefinitions>
                                <Button x:Name="UserTabResetPasswordButton" Content="Reset Password" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="5,1,5,1" IsEnabled="False"/>
                                <Label Content="New Password" Grid.Column="1"/>
                                <TextBox x:Name="UserTabNewPasswordTextBox" Grid.Column="2" IsReadOnly="True"/>
                            </Grid>
                             
                        </TabItem>
                        <TabItem x:Name="UserTabSCCMCollectionTabItem" Header="SCCM Collections" IsEnabled="False">
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="30"/>
                                    <RowDefinition Height="*"/>
                                </Grid.RowDefinitions>
                                <StackPanel Orientation="Horizontal" Margin="5,5,5,5">
                                    <Button x:Name="UserTabCollectionButton" Content="Query Collection Membership" Padding="5,1,5,1"/>
                                </StackPanel>
                                <DataGrid x:Name="UserTabCollectionMembershipDataGrid" Grid.Row="1" Margin="5,0,5,5"/>
                            </Grid>
                        </TabItem>
                    </TabControl>
                </Grid>
            </TabItem>
            <TabItem x:Name="UsersGroupsTabItem" Header="User's Groups">
                <Grid Margin="5,5,5,5">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="30"></RowDefinition>
                        <RowDefinition Height="*"></RowDefinition>
                    </Grid.RowDefinitions>
                    <StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Right">
                        <Label Content="SamAccountName" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                        <ComboBox x:Name="UsersGroupsTabSamAccountNameComboBox" VerticalAlignment="Center" Margin="0,0,2,0" IsEditable="True" MinWidth="150"/>
                        <Button x:Name="UsersGroupsTabLookupButton" Content="Lookup" VerticalAlignment="Center" Padding="15,1,15,1" Margin="2,0,2,0"/>
                    </StackPanel>
                    <DataGrid x:Name="UsersGroupTabDataGrid" Grid.Row="2" FrozenColumnCount="1" SelectionUnit="Cell" SelectionMode="Single" IsReadOnly="True" HeadersVisibility="Column">
                        <DataGrid.ContextMenu>
                            <ContextMenu>
                                <MenuItem x:Name="UsersGroupTabCopyContextMenuItem" Header="Copy to clipboard"/>
                            </ContextMenu>
                        </DataGrid.ContextMenu>
                    </DataGrid>
                </Grid>
            </TabItem>
            <TabItem x:Name="ExchangeTabItem" Header="User's Exchange">
                <Grid Margin="5,5,5,5">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="30"></RowDefinition>
                        <RowDefinition Height="*"></RowDefinition>
                    </Grid.RowDefinitions>
                    <StackPanel Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Right">
                        <Label Content="SamAccountName" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                        <ComboBox x:Name="ExchangeTabSamAccountNameComboBox" VerticalAlignment="Center" Margin="0,0,2,0" IsEditable="True" MinWidth="150"/>
                        <Button x:Name="ExchangeTabLookupButton" Content="Lookup" VerticalAlignment="Center" Padding="15,1,15,1" Margin="2,0,2,0"/>
                    </StackPanel>
                    <GroupBox Grid.Row="2" Header="Exchange On-Premise Information">
                        <Grid Margin="0,5,0,0">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="Auto"/>
                                <RowDefinition Height="*"/>
                            </Grid.RowDefinitions>
                            <Label Grid.Row="0" Grid.Column="0" Content="Email Address"/>
                            <TextBox Grid.Row="0" Grid.Column="1" Margin="5,0,0,0" x:Name="ExchangeTabEmailAddressTextBox" VerticalAlignment="Center" IsReadOnly="True"/>
 
                            <Label Grid.Row="1" Grid.Column="0" Content="Mailbox Type"/>
                            <TextBox Grid.Row="1" Grid.Column="1" Margin="5,0,0,0" x:Name="ExchangeTabMailboxTypeTextBox" VerticalAlignment="Center" IsReadOnly="True"/>
 
                            <CheckBox Grid.Row="2" Grid.Column="1" x:Name="ExchangeTabHiddenInGALCheckBox" Content="Hidden in GAL" Margin="5,0,0,0" Focusable="False" IsHitTestVisible="False"/>
 
                            <Label Grid.Row="3" Grid.Column="0" Content="Proxy Addresses"/>
                            <TextBox Grid.Row="3" Grid.Column="1" Margin="5,5,0,0" x:Name="ExchangeTabProxyAddressesTextBox" VerticalAlignment="Top" Height="70" IsReadOnly="True"/>
                        </Grid>
                    </GroupBox>
                </Grid>
            </TabItem>
            <TabItem x:Name="GroupTabItem" Header="Group">
                <Grid Margin="5,5,5,5">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="Auto"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="30"></RowDefinition>
                        <RowDefinition Height="auto"></RowDefinition>
                        <RowDefinition Height="auto"></RowDefinition>
                        <RowDefinition Height="*"></RowDefinition>
                    </Grid.RowDefinitions>
                    <StackPanel Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Right">
                        <Label Content="Group Name" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                        <ComboBox x:Name="GroupTabSamAccountNameComboBox" VerticalAlignment="Center" Margin="0,0,2,0" IsEditable="True" MinWidth="150"/>
                        <Button x:Name="GroupTabLookupButton" Content="Lookup" VerticalAlignment="Center" Padding="15,1,15,1" Margin="2,0,2,0"/>
                    </StackPanel>
                    <GroupBox Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="1" Header="Group Information">
                        <Grid Margin="5,5,5,5">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="*"></RowDefinition>
                                <RowDefinition Height="*"></RowDefinition>
                                <RowDefinition Height="1.5*"></RowDefinition>
                            </Grid.RowDefinitions>
                            <Label Grid.Column="0" Grid.Row="0" Content="Name" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,5,0"></Label>
                            <TextBox Grid.Column="1" Grid.Row="0" Name="GroupTabGroupNameTextBox" VerticalAlignment="Center" IsReadOnly="True"/>
                            <Label Grid.Column="0" Grid.Row="1" Content="SamAccountName" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,5,0"></Label>
                            <TextBox Grid.Column="1" Grid.Row="1" Name="GroupTabSamAccountNameTextBox" VerticalAlignment="Center" IsReadOnly="True"/>
                            <Label Grid.Column="0" Grid.Row="2" Content="Distinguished Name" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,5,0"></Label>
                            <TextBox Grid.Column="1" Grid.Row="2" Name="GroupTabDNTextBox" Margin="0,5,0,5" TextWrapping="WrapWithOverflow" IsReadOnly="True"/>
                        </Grid>
                    </GroupBox>
                    <GroupBox Grid.Column="0" Grid.Row="2" Header="Group Scope" Margin="0,5,5,5">
                        <StackPanel VerticalAlignment="Top" Margin="5,5,5,5">
                            <RadioButton Content="Domain local" Padding="0,2,0,2" Name="GroupTabDomainLocalRadioButton" VerticalContentAlignment="Center" Focusable="False" IsHitTestVisible="False" Margin="0,0,0,5"></RadioButton>
                            <RadioButton Content="Global" Padding="0,2,0,2" Name="GroupTabGlobalRadioButton" VerticalContentAlignment="Center" Focusable="False" IsHitTestVisible="False" Margin="0,0,0,5"></RadioButton>
                            <RadioButton Content="Universal" Padding="0,2,0,2" Name="GroupTabUniversalRadioButton" VerticalContentAlignment="Center" Focusable="False" IsHitTestVisible="False"></RadioButton>
                        </StackPanel>
                    </GroupBox>
                    <GroupBox Grid.Column="1" Grid.Row="2" Header="Group Type" Margin="0,5,0,5">
                        <StackPanel VerticalAlignment="Top" Margin="5,5,5,5">
                            <RadioButton Content="Security" Padding="0,2,0,2" Name="GroupTabSecurityRadioButton" VerticalContentAlignment="Center" Focusable="False" IsHitTestVisible="False" Margin="0,0,0,5"></RadioButton>
                            <RadioButton Content="Distribution" Padding="0,2,0,2" Name="GroupTabDistributionRadioButton" VerticalContentAlignment="Center" Focusable="False" IsHitTestVisible="False"/>
                        </StackPanel>
                    </GroupBox>
                    <GroupBox x:Name="GroupTabDescriptionGroupBox" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="3" Header="Description">
                        <!-- BUG this needs fixed so that the height is the area of the group box-->
                        <Canvas x:Name="Canvas" Height="{Binding ElementName=GroupTabDescriptionTextBox, Path=ActualHeight}" VerticalAlignment="Top">
                            <TextBox x:Name="GroupTabDescriptionTextBox" Width="{Binding ElementName=Canvas, Path=ActualWidth}" TextWrapping="Wrap" Margin="2,2,2,2" BorderBrush="#00ABADB3" IsReadOnly="True"></TextBox>
                        </Canvas>
                    </GroupBox>
                    <GroupBox Grid.Column="2" Grid.Row="2" Grid.RowSpan="2" Header="Members" Margin="5,5,0,0">
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto"/>
                                <RowDefinition Height="*"/>
                                <RowDefinition Height="auto"/>
                            </Grid.RowDefinitions>
                            <StackPanel Grid.Row="0" Orientation="Horizontal" Margin="0,5,0,5">
                                <RadioButton x:Name="GroupTabMembersRadioButton" Content="Members" IsChecked="True"/>
                                <RadioButton x:Name="GroupTabMembersOfRadioButton" Content="Members Of" Margin="5,0,0,0"/>
                                <CheckBox x:Name="GroupTabMembersRecursiveCheckBox" Content="Recursive" Margin="10,0,0,0"/>
                            </StackPanel>
                            <DataGrid x:Name="GroupTabMembersDataGrid" Grid.Row="1" SelectionUnit="Cell" SelectionMode="Single" IsReadOnly="True" HeadersVisibility="Column">
                                <DataGrid.ContextMenu>
                                    <ContextMenu>
                                        <MenuItem x:Name="GroupTabCopyContextMenuItem" Header="Copy to clipboard"/>
                                        <MenuItem x:Name="GroupTabExportMembersMenuItem" Header="Export to .csv"/>
                                    </ContextMenu>
                                </DataGrid.ContextMenu>
                            </DataGrid>
                            <Label x:Name="GroupTabMemberCountLabel" Content="Member Count:" Grid.Row="2" FontSize="10"/>
                        </Grid>
                    </GroupBox>
                </Grid>
            </TabItem>
            <TabItem x:Name="ComputerTabItem" Header="Computer">
                <Grid Margin="5,5,5,5">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="30"></RowDefinition>
                        <RowDefinition Height="*"></RowDefinition>
                    </Grid.RowDefinitions>
                    <StackPanel Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Right">
                        <Label Content="Hostname" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                        <ComboBox x:Name="ComputerTabHostNameComboBox" VerticalAlignment="Center" Margin="0,0,2,0" IsEditable="True" MinWidth="150"/>
                        <Button x:Name="ComputerTabLookupButton" Content="Lookup" VerticalAlignment="Center" Padding="15,1,15,1" Margin="2,0,2,0"/>
                    </StackPanel>
                    <TabControl Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="1" >
                        <TabItem Header="Queried Information">
                            <Grid Margin="5,5,5,5">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="auto"/>
                                    <RowDefinition Height="*"/>
                                </Grid.RowDefinitions>
                                <GroupBox Header="Computer Information from AD" Margin="5,5,5,0">
                                    <Grid Margin="5,5,5,5">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="Auto"/>
                                        </Grid.ColumnDefinitions>
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                        </Grid.RowDefinitions>
                                        <Label Grid.Column="0" Grid.Row="0" Content="Hostname" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                                        <TextBox Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="0" Name="ComputerTabHostnameTextBox" VerticalAlignment="Center" Margin="5,0,0,0" IsReadOnly="True"/>
 
                                        <StackPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="1">
                                            <CheckBox Content="Enabled" Name="ComputerTabEnabledCheckBox" VerticalContentAlignment="Center" Focusable="False" IsHitTestVisible="False" IsTabStop="False" Margin="5,0,10,0"/>
                                            <CheckBox Content="Locked Out" Name="ComputerTabLockedOutCheckBox" VerticalContentAlignment="Center" Focusable="False" IsHitTestVisible="False" IsTabStop="False"/>
                                        </StackPanel>
 
                                        <Label Grid.Column="0" Grid.Row="2" Content="OU Path" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                                        <TextBox Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="2" Name="ComputerTabOUPathTextBox" VerticalAlignment="Center" Margin="5,0,0,0" IsReadOnly="True"/>
 
                                        <Label Grid.Column="0" Grid.Row="3" Content="Operating System" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                                        <TextBox Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="3" Name="ComputerTabOSTextBox" VerticalAlignment="Center" Margin="5,0,0,0" IsReadOnly="True"/>
 
                                        <Label Grid.Column="0" Grid.Row="4" Content="IP Address" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                                        <TextBox Grid.Column="1" Grid.Row="4" Name="ComputerTabIPAddressTextBox" VerticalAlignment="Center" Margin="5,0,0,0" IsReadOnly="True"/>
 
                                        <Label Grid.Column="0" Grid.Row="5" Content="Creation Date" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                                        <TextBox Grid.Column="1" Grid.Row="5" Name="ComputerTabCreationDateTextBox" VerticalAlignment="Center" Margin="5,0,0,0" IsReadOnly="True"/>
 
                                        <Label Grid.Column="0" Grid.Row="6" Content="Last Logon Date" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                                        <TextBox Grid.Column="1" Grid.Row="6" Grid.ColumnSpan="2" Name="ComputerTabLastLogonDateTextBox" VerticalAlignment="center" Margin="5,0,0,0" IsReadOnly="True"/>
 
                                        <Label Grid.Column="0" Grid.Row="7" Content="Description" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                                        <TextBox Grid.Column="1" Grid.Row="7" Grid.ColumnSpan="2" Name="ComputerTabDescriptionTextBox" VerticalAlignment="center" Margin="5,0,0,0" IsReadOnly="True"/>
 
                                    </Grid>
                                </GroupBox>
                                <GroupBox Header="Group Memberships" Grid.Row="1" Margin="5,5,5,5">
                                    <DataGrid x:Name="ComputerTabGroupsDataGrid" HeadersVisibility="Column"/>
                                </GroupBox>
                            </Grid>
 
                        </TabItem>
                        <TabItem Header="Actions">
                            <StackPanel>
                                <StackPanel Orientation="Horizontal" Margin="5,5,5,10">
                                    <Button x:Name="ComputerTabShowApplicationsButton" Content="Display Software" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,5,5,0" Padding="2,1,2,1"/>
                                    <Button x:Name="ComputerTabShowInstalledUpdatesButton" Content="Display Updates" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,5,5,0" Padding="2,1,2,1"/>
                                    <Button x:Name="ComputerTabRSOPButton" Content="RSOP Report" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,5,5,0" Padding="2,1,2,1"/>
 
                                </StackPanel>
                                <GroupBox Header="Live Information" Margin="5,0,5,0">
                                    <Grid Margin="5,5,5,5">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="*"/>
                                        </Grid.ColumnDefinitions>
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                            <RowDefinition Height="Auto"></RowDefinition>
                                        </Grid.RowDefinitions>
                                        <StackPanel Orientation="Horizontal" Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="0">
                                            <Button x:Name="ComputerTabQueryLiveButton" Content="Query" Margin="0,5,5,5" Padding="2,1,2,1"/>
                                        </StackPanel>
                                        <Label Grid.Column="0" Grid.Row="1" Content="Logged In Users" HorizontalAlignment="Right" VerticalAlignment="Center"/>
                                        <TextBox Grid.Column="1" Grid.Row="1" Name="ComputerTabLoggedInUsersTextBox" Margin="5,10,0,10" Grid.ColumnSpan="2" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" IsReadOnly="True"/>
                                        <CheckBox x:Name="ComputerTabRebootRequiredCheckBox" Grid.Column="1" Grid.Row="2" Content="Reboot Required" Focusable="False" IsHitTestVisible="False" Margin="5,0,0,0"/>
                                    </Grid>
                                </GroupBox>
                            </StackPanel>
                        </TabItem>
                        <TabItem x:Name="ComputerTabSCCMCollectionsTabItem" Header="SCCM Collections">
                            <Grid>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="30"/>
                                    <RowDefinition Height="*"/>
                                </Grid.RowDefinitions>
                                <StackPanel Orientation="Horizontal" Margin="5,5,5,5">
                                    <Button x:Name="ComputerTabCollectionButton" Content="Query Collection Membership" Padding="5,1,5,1"/>
                                </StackPanel>
                                <DataGrid x:Name="ComputerTabCollectionMembershipDataGrid" Grid.Row="1" Margin="5,0,5,5"/>
                            </Grid>
                        </TabItem>
                    </TabControl>
                </Grid>
            </TabItem>
            <TabItem x:Name="OptionsTabItem" Header="Options">
                <Grid Margin="5,5,5,5">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="2*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="auto"></RowDefinition>
                        <RowDefinition Height="auto"></RowDefinition>
                        <RowDefinition Height="30"></RowDefinition>
                        <RowDefinition Height="*"></RowDefinition>
                    </Grid.RowDefinitions>
                    <GroupBox x:Name="OptionsTabObjectMgmtGroupBox" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Header="Objects Management">
                        <Grid Margin="5,5,5,5">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="auto"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto"></RowDefinition>
                                <RowDefinition Height="auto"></RowDefinition>
                                <RowDefinition Height="auto"></RowDefinition>
                            </Grid.RowDefinitions>
                            <!--TODO this doesn't wrap!-->
                            <TextBlock TextWrapping="Wrap" Grid.Column="0" Grid.ColumnSpan="3" Text="This location is used for RSOP reports and CSV exports." Margin="0,0,0,5" />
 
                            <Label Grid.Column="0" Grid.Row="1" x:Name="OptionsTabObjectCacheLabel" Content="Storage Path" VerticalAlignment="Center"/>
                            <TextBox Grid.Column="1" Grid.Row="1" x:Name="OptionsTabObjectCacheTextBox" VerticalAlignment="Center" IsReadOnly="True"/>
                            <Button x:Name="OptionsTabSelectFolderButton" Grid.Column="2" Grid.Row="1" Content="Select Folder" VerticalAlignment="Center" Margin="5,0,5,0" Width="95"/>
 
                            <StackPanel Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,5,5,5">
                                <Button x:Name="OptionsTabClearDataButton" Content="Clean up folder" VerticalAlignment="Center" Width="95"/>
                            </StackPanel>
                        </Grid>
                    </GroupBox>
                    <GroupBox Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Header="Server Connections" Margin="0,5,0,0">
                        <Grid Margin="5,5,5,5">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"></ColumnDefinition>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="*"></RowDefinition>
                                <RowDefinition Height="*"></RowDefinition>
                                <RowDefinition Height="*"></RowDefinition>
                            </Grid.RowDefinitions>
                            <Label Grid.Column="0" Grid.Row="0" x:Name="DCLabel" Content="Domain Controller" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                            <ComboBox x:Name="OptionTabDCComboBox" Grid.Column="1" Grid.Row="0" VerticalAlignment="Center" >
                            </ComboBox>
                            <Label Grid.Column="0" Grid.Row="1" Content="SCCM Server" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                            <TextBox Grid.Column="1" Grid.Row="1" x:Name="OptionsTabSCCMServerTextBox" VerticalAlignment="Center"/>
                            <Label Grid.Column="0" Grid.Row="2" Content="Default collection" HorizontalAlignment="Right" VerticalAlignment="Center"></Label>
                            <ComboBox x:Name="OptionTabSCCMCollectionComboBox" Grid.Column="1" Grid.Row="2" VerticalAlignment="Center" >
                            </ComboBox>
 
                        </Grid>
                    </GroupBox>
                    <Button x:Name="OptionsTabSaveSettingsButton" Grid.Column="5" Grid.Row="2" Content="Save Settings" VerticalAlignment="Center" Width="95" Margin="0,0,5,0" HorizontalAlignment="Right"/>
                    <GroupBox Grid.Column="0" Grid.Row="3" Grid.ColumnSpan="2" Header="Output" VerticalAlignment="Bottom">
                        <Label x:Name="OptionsTabOutputLabel" Height="75"/>
                    </GroupBox>
                </Grid>
            </TabItem>
        </TabControl>
        <StatusBar VerticalAlignment="Bottom" Height="25" Style="{DynamicResource StatusBar}">
            <StatusBarItem x:Name="StatusStatusBarItem" Content="" VerticalAlignment="Center" Margin="5,0,0,0"/>
            <StatusBarItem x:Name="ConnectedDCStatusBarItem" Content="Connected to: " VerticalAlignment="Center" HorizontalAlignment="Right" Margin="0,0,5,0"/>
        </StatusBar>
        <Menu VerticalAlignment="Top" Height="20">
            <MenuItem Header="File">
                <MenuItem x:Name="UpdateCacheMenuItem" Header="Update AD Cache"/>
                <MenuItem x:Name="UpdateSCCMDevicesMenuItem" Header="Update SCCM Devices"/>
                <MenuItem x:Name="AboutMenuItem" Header="About"/>
                <Separator/>
                <MenuItem x:Name="ExitMenuItem" Header="_Exit"/>
            </MenuItem>
        </Menu>
    </Grid>
</Window>