lib/ui/MainFormTabContent.xaml
|
<UserControl 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:Wpf="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf" x:Name="MainFormTabContent"> <UserControl.Resources> <Style TargetType="TextBox"> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="Height" Value="25" /> <Setter Property="Width" Value="300" /> <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" /> </Style> <Style TargetType="PasswordBox"> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="Height" Value="25" /> <Setter Property="Width" Value="300" /> <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" /> </Style> <Style TargetType="TextBlock"> <Setter Property="HorizontalAlignment" Value="Left" /> <Setter Property="VerticalAlignment" Value="Top" /> <Setter Property="Height" Value="25" /> <Setter Property="MinHeight" Value="25" /> <Setter Property="Width" Value="100" /> <Setter Property="MinWidth" Value="100" /> </Style> <Style TargetType="CheckBox"> <Setter Property="HorizontalAlignment" Value="Center" /> <Setter Property="VerticalAlignment" Value="Top" /> <Setter Property="Height" Value="25" /> <Setter Property="MinHeight" Value="25" /> <Setter Property="Width" Value="100" /> <Setter Property="MinWidth" Value="100" /> </Style> <Style TargetType="ComboBox"> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="HorizontalContentAlignment" Value="Left" /> <Setter Property="MinHeight" Value="25" /> <Setter Property="Height" Value="25" /> <Setter Property="MinWidth" Value="300" /> <Setter Property="Width" Value="300" /> </Style> <Style TargetType="Button"> <Setter Property="Height" Value="25" /> <Setter Property="MinHeight" Value="25" /> <Setter Property="Width" Value="98" /> <Setter Property="MinWidth" Value="98" /> <Setter Property="IsEnabled" Value="False" /> <Setter Property="Padding" Value="2,3" /> </Style> <Style x:Key="ButtonAccessTextStyle" TargetType="AccessText"> <Setter Property="HorizontalAlignment" Value="Center" /> <Setter Property="TextAlignment" Value="Center" /> <Setter Property="Height" Value="25" /> <Setter Property="Width" Value="100" /> <Setter Property="MinWidth" Value="100" /> <Setter Property="FontSize" Value="12" /> </Style> <Style x:Key="ToolbarGlyphStyle" TargetType="TextBlock"> <Setter Property="FontFamily" Value="Segoe Fluent Icons, Segoe MDL2 Assets" /> <Setter Property="FontSize" Value="14" /> <Setter Property="Width" Value="15" /> <Setter Property="MinWidth" Value="15" /> <Setter Property="Height" Value="15" /> <Setter Property="MinHeight" Value="15" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="HorizontalAlignment" Value="Center" /> <Setter Property="TextAlignment" Value="Center" /> <Setter Property="Foreground" Value="#1F1F1F" /> <Setter Property="IsHitTestVisible" Value="False" /> </Style> <Style x:Key="CheckboxAccessTextStyle" TargetType="AccessText"> <Setter Property="HorizontalAlignment" Value="Center" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="TextAlignment" Value="Left" /> <Setter Property="Height" Value="25" /> <Setter Property="MinHeight" Value="25" /> <Setter Property="Width" Value="100" /> <Setter Property="MinWidth" Value="100" /> </Style> <Style x:Key="DefaultSeparatorStyle" TargetType="Separator"> <Setter Property="Background" Value="Transparent" /> </Style> <Style x:Key="DefaultWidthSeparatorStyle" TargetType="Separator" BasedOn="{StaticResource DefaultSeparatorStyle}"> <Setter Property="MinWidth" Value="15" /> </Style> <Style x:Key="DefaultButtonWidthSeparatorStyle" TargetType="Separator" BasedOn="{StaticResource DefaultSeparatorStyle}"> <Setter Property="MinWidth" Value="20" /> </Style> <Style x:Key="DefaultHeightSeparator" TargetType="Separator" BasedOn="{StaticResource DefaultSeparatorStyle}"> <Setter Property="MinWidth" Value="5" /> </Style> <Style x:Key="LeftBorderWidthSeparatorStyle" TargetType="Separator" BasedOn="{StaticResource DefaultSeparatorStyle}"> <Setter Property="MinWidth" Value="10" /> </Style> <Style x:Key="ButtontBorderWidthSeparatorStyle" TargetType="Separator" BasedOn="{StaticResource DefaultSeparatorStyle}"> <Setter Property="MinWidth" Value="19" /> </Style> <Style TargetType="DataGridRowHeader"> <Setter Property="MinWidth" Value="40" /> <Setter Property="Width" Value="40" /> <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" /> <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.ControlDarkBrushKey}}" /> <Setter Property="BorderThickness" Value="0,0,1,1" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="DataGridRowHeader"> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> <Grid> <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Path=Header}" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="10" FontWeight="Normal" Foreground="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" /> </Grid> <Border.ToolTip> <ToolTip Content="Click top-left corner to reset sort order" /> </Border.ToolTip> </Border> </ControlTemplate> </Setter.Value> </Setter> </Style> </UserControl.Resources> <!-- The navy frame around the content lives in MainForm.xaml's TabControl template now, so the tab strip and this content share one frame; this content is frame-less. --> <Grid x:Name="MainGrid" KeyboardNavigation.TabNavigation="Continue" Background="{DynamicResource {x:Static SystemColors.ScrollBarBrushKey}}"> <Grid Margin="0"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="30" /> </Grid.RowDefinitions> <Grid Margin="0" Grid.Row="0"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="6" /> </Grid.RowDefinitions> <StackPanel Orientation="Vertical" Grid.Row="0"> <StackPanel Orientation="Horizontal"> <Separator Style="{StaticResource DefaultSeparatorStyle}" Height="6" /> </StackPanel> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <StackPanel Orientation="Vertical" HorizontalAlignment="Left" Grid.Column="0"> <Grid Margin="5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="10" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="TextBlockUrl" Text="Tenant:" ToolTip="Omada Tenant url. Enter full URL or tenant name only. Example: Enter 'comp' for 'https://comp.omada.cloud'" /> <TextBox Grid.Column="3" x:Name="TextBoxURL" TabIndex="1" ToolTip="Enter full URL or tenant name only. Example: Enter 'comp' for 'https://comp.omada.cloud'" /> <TextBlock Grid.Column="5" x:Name="TextBlockUserName" Text="Username:" ToolTip="Username:" Visibility="Hidden" /> <TextBox Grid.Column="7" x:Name="TextBoxUserName" TabIndex="3" Visibility="Hidden" IsEnabled="False" /> <TextBlock Grid.Column="9" x:Name="TextBlockAppIdUri" Text="App Uri:" Visibility="Hidden" ToolTip="Application ID Uri:" /> <TextBox Grid.Column="11" x:Name="TextBoxAppIdUri" TabIndex="5" IsEnabled="False" Visibility="Hidden" /> </Grid> <Grid Margin="5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="10" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" Text="Authentication:" VerticalAlignment="Center" /> <ComboBox Grid.Column="3" x:Name="ComboBoxSelectAuthenticationOption" SelectedIndex="0" TabIndex="2" VerticalAlignment="Center"> <ComboBoxItem Content="Browser" /> <ComboBoxItem Content="WebView2" /> <ComboBoxItem Content="OAuth" /> <ComboBoxItem Content="Browser-InPrivate" /> <ComboBoxItem Content="WebView2-InPrivate" /> </ComboBox> <TextBlock Grid.Column="5" x:Name="TextBlockPassword" Text="Password:" Visibility="Hidden" VerticalAlignment="Center" /> <PasswordBox Grid.Column="7" x:Name="TextBoxPassword" TabIndex="4" Visibility="Hidden" VerticalAlignment="Center" /> <TextBlock Grid.Column="9" x:Name="TextBlockEntraIdTenantId" Text="Entra Tenant ID:" Visibility="Hidden" VerticalAlignment="Center" /> <TextBox Grid.Column="11" x:Name="TextBoxEntraIdTenantId" Visibility="Hidden" TabIndex="6" VerticalAlignment="Center" /> </Grid> <Grid Margin="5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="10" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="TextBlockComboBoxSelectQuery" Text="Query:" ToolTip="Query list" /> <ComboBox Grid.Column="3" x:Name="ComboBoxSelectQuery" TabIndex="7" IsEditable="True" IsTextSearchEnabled="True" StaysOpenOnEdit="True" /> <TextBlock Grid.Column="5" Text="Save Password:" /> <StackPanel Grid.Column="7" Orientation="Horizontal" VerticalAlignment="Center"> <CheckBox x:Name="CheckBoxSavePassword" TabIndex="8" /> </StackPanel> </Grid> <Grid Margin="5" VerticalAlignment="Center"> <Grid.ColumnDefinitions> <ColumnDefinition Width="10" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="TextBlockDisplayName" Text="Display name:" ToolTip="The Display Name of a query, the display name can be changed if needed." /> <TextBox Grid.Column="3" x:Name="TextBoxDisplayName" IsEnabled="False" TabIndex="9" /> <TextBlock Grid.Column="5" Text="Filter my queries:" Grid.RowSpan="5" /> <StackPanel Grid.Column="7" Orientation="Horizontal" VerticalAlignment="Center"> <CheckBox x:Name="CheckboxMyCreatedQueries" TabIndex="10" Content="Crea_ted" /> <CheckBox x:Name="CheckboxMyUpdatedQueries" TabIndex="11" Content="Last _Updated" /> </StackPanel> <TextBlock Grid.Column="9" Width="85" MinWidth="85" /> <TextBlock Grid.Column="11" x:Name="TextBlockDataConnection" Text="Connection:" ToolTip="Data Connection" /> <ComboBox Grid.Column="13" x:Name="ComboBoxSelectDataConnection" TabIndex="12" IsEditable="True" IsTextSearchEnabled="True" StaysOpenOnEdit="True" /> </Grid> </StackPanel> </Grid> </StackPanel> <Separator Style="{StaticResource DefaultHeightSeparator}" Grid.Row="1" /> <StackPanel Orientation="Horizontal" Grid.Row="2"> <Separator Style="{StaticResource ButtontBorderWidthSeparatorStyle}" /> <Button x:Name="ButtonNewQuery" TabIndex="13" ToolTip="Creates a new query object in Omada"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="40" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonNewQueryImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonNewQueryText" Text="_New" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource DefaultButtonWidthSeparatorStyle}" /> <Button x:Name="ButtonRefreshQueries" TabIndex="14" IsEnabled="True" ToolTip="Refresh query list"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="40" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonRefreshQueriesImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonRefreshQueriesText" Text="_Refresh" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource DefaultButtonWidthSeparatorStyle}" /> <Button x:Name="ButtonShowSqlSchema" TabIndex="15" ToolTip="Show Sql Schema"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="40" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonShowSqlSchemaImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonShowSqlSchemaText" Text="Sche_ma" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource DefaultButtonWidthSeparatorStyle}" /> <Button x:Name="ButtonSaveQuery" TabIndex="16" ToolTip="Save query in Omada"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="40" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonSaveQueryImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonSaveQueryText" Text="_Save" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource DefaultButtonWidthSeparatorStyle}" /> <Button x:Name="ButtonExecuteQuery" TabIndex="17" ToolTip="Execute"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="40" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonExecuteQueryImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonExecuteQueryText" Text="_Execute" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource DefaultButtonWidthSeparatorStyle}" /> <Button x:Name="ButtonShowHistory" TabIndex="18" IsEnabled="True" ToolTip="Show history window"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="40" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonShowHistoryImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonShowHistoryText" Text="_History" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource ButtontBorderWidthSeparatorStyle}" /> <Button x:Name="ButtonShowOutput" TabIndex="19" ToolTip="View result in a new window"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="40" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonShowOutputImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonShowOutputText" Text="_View" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource DefaultButtonWidthSeparatorStyle}" /> <Button x:Name="ButtonSaveOutputFile" TabIndex="20" ToolTip="Export result to a file"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="40" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonSaveOutputFileImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonSaveOutputFileText" Text="E_xport" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource DefaultButtonWidthSeparatorStyle}" /> <Button x:Name="ButtonOpenOutputFile" TabIndex="21" ToolTip="Open export file"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="70" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonOpenOutputFileImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonOpenOutputFileText" Text="_Open Export" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource DefaultButtonWidthSeparatorStyle}" /> <Button x:Name="ButtonConnect" TabIndex="22" ToolTip="Connect to Omada"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="70" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonConnectImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonConnectText" Text="_Connect" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource DefaultButtonWidthSeparatorStyle}" /> <Button x:Name="ButtonReset" TabIndex="23" IsEnabled="True" ToolTip="Reset application"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="40" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonResetImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonResetText" Text="Reset" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource DefaultButtonWidthSeparatorStyle}" /> <Button x:Name="ButtonShowLog" TabIndex="24" IsEnabled="True" ToolTip="Show log window"> <Border Background="Transparent" IsHitTestVisible="False"> <Grid HorizontalAlignment="Center" VerticalAlignment="Center" Background="Transparent" IsHitTestVisible="False"> <Grid.ColumnDefinitions> <ColumnDefinition Width="4" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="4" /> <ColumnDefinition Width="40" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ButtonShowLogImage" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <AccessText Grid.Column="3" IsHitTestVisible="False" x:Name="ButtonShowLogText" Text="_Log" Style="{StaticResource ButtonAccessTextStyle}" /> </Grid> </Border> </Button> <Separator Style="{StaticResource ButtontBorderWidthSeparatorStyle}" /> </StackPanel> </Grid> <Grid Grid.Row="1"> <Grid.RowDefinitions> <RowDefinition Height="3" /> <RowDefinition Height="*" MinHeight="225" /> <RowDefinition Height="3" /> <RowDefinition Height="*" MinHeight="60" /> </Grid.RowDefinitions> <GridSplitter Grid.Row="0" HorizontalAlignment="Stretch" Background="#FF293955" /> <Grid Grid.Row="1"> <Grid.RowDefinitions> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Border BorderThickness="0" Background="White"> <Wpf:WebView2 x:Name="webView21" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" MinHeight="200" /> </Border> </Grid> <GridSplitter Grid.Row="2" HorizontalAlignment="Stretch" Background="#FF293955" /> <Grid Grid.Row="3"> <Grid.RowDefinitions> <RowDefinition Height="25" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Grid Margin="5"> <Grid.ColumnDefinitions> <ColumnDefinition Width="0" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="5" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="15" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock Grid.Column="1" x:Name="ImageOutputStatus" Style="{StaticResource ToolbarGlyphStyle}" Text="" /> <TextBlock Grid.Column="3" x:Name="TextBlockOutputBox" Text="Results:" /> </Grid> <DataGrid x:Name="DataGridQueryResult" Grid.Row="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" FontFamily="Consolas" IsReadOnly="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" AlternationCount="{Binding MyObservableCollection.Count}" MinHeight="200" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto" CanUserResizeColumns="True" CanUserReorderColumns="True" CanUserSortColumns="False" Focusable="True" IsTabStop="True" SelectionMode="Extended" SelectionUnit="CellOrRowHeader" ClipboardCopyMode="IncludeHeader"> <DataGrid.Resources> <Style TargetType="TextBlock"> <Setter Property="VerticalAlignment" Value="Center"/> </Style> </DataGrid.Resources> <DataGrid.ContextMenu> <ContextMenu x:Name="DataGridQueryResultContextMenu" FontFamily="Segoe UI" FontSize="13" Foreground="#1F1F1F"> <ContextMenu.Template> <ControlTemplate TargetType="ContextMenu"> <Border Background="White" BorderBrush="#D9D9D9" BorderThickness="1" CornerRadius="4" Margin="6" SnapsToDevicePixels="True"> <Border.Effect> <DropShadowEffect BlurRadius="12" ShadowDepth="2" Opacity="0.18" Color="Black"/> </Border.Effect> <ItemsPresenter Margin="0,4"/> </Border> </ControlTemplate> </ContextMenu.Template> <ContextMenu.Resources> <ControlTemplate x:Key="DataGridQueryResultFlatMenuItem" TargetType="MenuItem"> <Border x:Name="Border" Background="Transparent" Padding="12,8"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="18"/> <ColumnDefinition Width="12"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="16"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <ContentPresenter Grid.Column="0" ContentSource="Icon" VerticalAlignment="Center" HorizontalAlignment="Center"/> <ContentPresenter Grid.Column="2" ContentSource="Header" RecognizesAccessKey="True" VerticalAlignment="Center"/> <TextBlock Grid.Column="4" Text="{TemplateBinding InputGestureText}" VerticalAlignment="Center" Foreground="{TemplateBinding Foreground}" Opacity="0.75"/> </Grid> </Border> <ControlTemplate.Triggers> <Trigger Property="IsHighlighted" Value="True"> <Setter TargetName="Border" Property="Background" Value="#F1F5F9"/> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Opacity" Value="0.5"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> <ControlTemplate x:Key="DataGridQueryResultFlatMenuItemWithSubmenu" TargetType="MenuItem"> <Border x:Name="Border" Background="Transparent" Padding="12,8"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="18"/> <ColumnDefinition Width="12"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="16"/> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="16"/> </Grid.ColumnDefinitions> <ContentPresenter Grid.Column="0" ContentSource="Icon" VerticalAlignment="Center" HorizontalAlignment="Center"/> <ContentPresenter Grid.Column="2" ContentSource="Header" RecognizesAccessKey="True" VerticalAlignment="Center"/> <TextBlock Grid.Column="4" Text="{TemplateBinding InputGestureText}" VerticalAlignment="Center" Foreground="{TemplateBinding Foreground}" Opacity="0.75"/> <TextBlock Grid.Column="5" Text="" FontFamily="Segoe Fluent Icons, Segoe MDL2 Assets" FontSize="10" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="{TemplateBinding Foreground}"/> <Popup x:Name="SubmenuPopup" Placement="Right" HorizontalOffset="-4" VerticalOffset="-8" IsOpen="{TemplateBinding IsSubmenuOpen}" AllowsTransparency="True" Focusable="False" PopupAnimation="Fade"> <Border x:Name="SubmenuBorder" Background="White" BorderBrush="#E5E7EB" BorderThickness="1" CornerRadius="6" Padding="4"> <Border.Effect> <DropShadowEffect Color="#000000" Opacity="0.15" BlurRadius="12" ShadowDepth="2"/> </Border.Effect> <ItemsPresenter KeyboardNavigation.DirectionalNavigation="Cycle" Grid.IsSharedSizeScope="True"/> </Border> </Popup> </Grid> </Border> <ControlTemplate.Triggers> <Trigger Property="IsHighlighted" Value="True"> <Setter TargetName="Border" Property="Background" Value="#F1F5F9"/> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Opacity" Value="0.5"/> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> <Style TargetType="Separator"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="Separator"> <Border Height="1" Margin="12,4" Background="#E5E7EB"/> </ControlTemplate> </Setter.Value> </Setter> </Style> </ContextMenu.Resources> <MenuItem x:Name="DataGridQueryResultMenuItemCopy" Header="Copy" InputGestureText="Ctrl+C" Template="{StaticResource DataGridQueryResultFlatMenuItem}"> <MenuItem.Icon> <TextBlock FontFamily="Segoe Fluent Icons, Segoe MDL2 Assets" FontSize="14" Text="" Foreground="#4B5563"/> </MenuItem.Icon> </MenuItem> <MenuItem x:Name="DataGridQueryResultMenuItemCopyWithHeaders" Header="Copy with Headers" InputGestureText="Ctrl+Shift+C" Template="{StaticResource DataGridQueryResultFlatMenuItem}"> <MenuItem.Icon> <TextBlock FontFamily="Segoe Fluent Icons, Segoe MDL2 Assets" FontSize="14" Text="" Foreground="#4B5563"/> </MenuItem.Icon> </MenuItem> <MenuItem x:Name="DataGridQueryResultMenuItemCopyAs" Header="Copy As..." Template="{StaticResource DataGridQueryResultFlatMenuItemWithSubmenu}"> <MenuItem x:Name="DataGridQueryResultMenuItemCopyAsSqlArray" Header="Sql Array" InputGestureText="Ctrl+Shift+S" Template="{StaticResource DataGridQueryResultFlatMenuItem}"> <MenuItem.Icon> <TextBlock FontFamily="Segoe Fluent Icons, Segoe MDL2 Assets" FontSize="14" Text="" Foreground="#4B5563"/> </MenuItem.Icon> </MenuItem> <MenuItem x:Name="DataGridQueryResultMenuItemCopyAsPowerShellArray" Header="PowerShell Array" InputGestureText="Ctrl+Shift+P" Template="{StaticResource DataGridQueryResultFlatMenuItem}"> <MenuItem.Icon> <TextBlock FontFamily="Segoe Fluent Icons, Segoe MDL2 Assets" FontSize="14" Text="" Foreground="#4B5563"/> </MenuItem.Icon> </MenuItem> </MenuItem> <MenuItem x:Name="DataGridQueryResultMenuItemSelectAll" Header="Select All" InputGestureText="Ctrl+A" Template="{StaticResource DataGridQueryResultFlatMenuItem}"> <MenuItem.Icon> <TextBlock FontFamily="Segoe Fluent Icons, Segoe MDL2 Assets" FontSize="14" Text="" Foreground="#4B5563"/> </MenuItem.Icon> </MenuItem> <Separator/> <MenuItem x:Name="DataGridQueryResultMenuItemSaveAs" Header="Save Results As..." Template="{StaticResource DataGridQueryResultFlatMenuItem}"> <MenuItem.Icon> <TextBlock FontFamily="Segoe Fluent Icons, Segoe MDL2 Assets" FontSize="14" Text="" Foreground="#4B5563"/> </MenuItem.Icon> </MenuItem> <MenuItem x:Name="DataGridQueryResultMenuItemSaveSelectedAs" Header="Save Selected As..." Template="{StaticResource DataGridQueryResultFlatMenuItem}"> <MenuItem.Icon> <TextBlock FontFamily="Segoe Fluent Icons, Segoe MDL2 Assets" FontSize="14" Text="" Foreground="#4B5563"/> </MenuItem.Icon> </MenuItem> <MenuItem x:Name="DataGridQueryResultMenuItemViewSelected" Header="View Selected" Template="{StaticResource DataGridQueryResultFlatMenuItem}"> <MenuItem.Icon> <TextBlock FontFamily="Segoe Fluent Icons, Segoe MDL2 Assets" FontSize="14" Text="" Foreground="#4B5563"/> </MenuItem.Icon> </MenuItem> </ContextMenu> </DataGrid.ContextMenu> </DataGrid> </Grid> </Grid> <StatusBar Height="30" Grid.Row="2" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Background="Khaki"> <StatusBar.ItemsPanel> <ItemsPanelTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="6" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="6" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="6" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="6" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> </Grid> </ItemsPanelTemplate> </StatusBar.ItemsPanel> <StatusBarItem Grid.Column="0"> <TextBlock Name="TextBlockStatusBarConnectionStatus" Text="Disconnected" /> </StatusBarItem> <Separator Grid.Column="1" Background="Gray" Opacity="0.50" Margin="2,5,2,5" /> <StatusBarItem Grid.Column="2"> <TextBlock Name="TextBlockStatusBarUrl" Text="-" MinWidth="135" /> </StatusBarItem> <Separator Grid.Column="3" Background="Gray" Opacity="0.50" Margin="2,5,2,5" /> <StatusBarItem Grid.Column="4"> <TextBlock Name="TextBlockStatusBarDatabaseName" Text="-" MinWidth="135" /> </StatusBarItem> <Separator Grid.Column="5" Background="Gray" Opacity="0.50" Margin="2,5,2,5" /> <StatusBarItem Grid.Column="6"> <TextBlock Name="TextBlockStatusBarQueryTime" Text="00:00:00.0000000" MinWidth="100" /> </StatusBarItem> <Separator Grid.Column="7" Background="Gray" Opacity="0.50" Margin="2,5,2,5" /> <StatusBarItem Grid.Column="8"> <TextBlock Name="TextBlockStatusBarRows" Text="0 rows" MinWidth="50" /> </StatusBarItem> </StatusBar> </Grid> </Grid> </UserControl> |