Sic08/Yalv/YALV/MainWindow.xaml

685 lines
40 KiB
Plaintext
Raw Normal View History

2023-03-03 15:42:13 +08:00
<Window
x:Class="YALV.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Properties="clr-namespace:YALV.Properties"
xmlns:converters="clr-namespace:YALV.Common.Converters"
xmlns:local="clr-namespace:YALV.Common"
xmlns:yalv="clr-namespace:YALV"
Title="{Binding Path=WindowTitle, Mode=OneWay}"
Width="1250"
Height="650"
AllowDrop="True"
Style="{StaticResource DefaultWindowStyle}"
WindowStartupLocation="CenterScreen"
WindowState="Maximized">
<Window.Resources>
<converters:BoolToOppositeVisibilityConverter x:Key="BoolToOppositeVisibilityConverter" />
<converters:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
<converters:MultiValueEqualsToBoolConverter x:Key="MultiValueEqualsToBoolConverter" />
<converters:LevelToSolidColorConverter x:Key="LevelToSolidColorConverter" />
<converters:StringEmptyToVisibilityConverter x:Key="StringEmptyToVisibilityConverter" />
<converters:TimeDeltaDoubleToLocalizedStringConverter x:Key="TimeDeltaDoubleToLocalizedStringConverter" />
<ContextMenu x:Key="FilesListBoxContextMenu">
<MenuItem
Command="{Binding Path=CommandSelectAllFiles}"
CommandParameter="ALL"
Header="{x:Static Properties:Resources.MainWindow_FilesListBoxContextMenu_SelectAll_Header}"
Visibility="{Binding Path=IsFileSelectionEnabled, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" />
<MenuItem
Command="{Binding Path=CommandSelectAllFiles}"
CommandParameter="NONE"
Header="{x:Static Properties:Resources.MainWindow_FilesListBoxContextMenu_SelectNone_Header}"
Visibility="{Binding Path=IsFileSelectionEnabled, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" />
<Separator Visibility="{Binding Path=IsFileSelectionEnabled, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}" />
<MenuItem Command="{Binding Path=CommandDelete}" Header="{x:Static Properties:Resources.MainWindow_FilesListBoxContextMenu_DeleteFile_Header}" />
<MenuItem Command="{Binding Path=CommandRefreshFiles}" Header="{x:Static Properties:Resources.MainWindow_FilesListBoxContextMenu_RefreshFileList_Header}" />
<MenuItem Command="{Binding Path=CommandOpenSelectedFolder}" Header="{x:Static Properties:Resources.MainWindow_FilesListBoxContextMenu_OpenSelectedFolder_Header}" />
</ContextMenu>
</Window.Resources>
<Window.InputBindings>
<KeyBinding
Key="F5"
Command="{Binding Path=CommandRefreshFiles}"
Modifiers="Control" />
<KeyBinding Key="F5" Command="{Binding Path=CommandRefresh}" />
<KeyBinding
Key="D"
Command="{Binding Path=CommandClear}"
Modifiers="Control" />
<KeyBinding Key="DELETE" Command="{Binding Path=CommandDelete}" />
</Window.InputBindings>
<Grid
Name="contentGrid"
local:BusyIndicatorBehavior.BusyState="{Binding IsLoading}"
local:BusyIndicatorBehavior.TargetVisual="{Binding ElementName=contentGrid}">
<DockPanel LastChildFill="True">
<!-- TOP -->
<StackPanel DockPanel.Dock="Top" Orientation="Vertical">
<!-- MENU -->
<local:MainMenu x:Name="mainMenu" />
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<!-- TOOLBAR -->
<local:MainToolbar
Grid.Column="0"
Margin="5,0,0,0"
HorizontalAlignment="Left"
Style="{StaticResource DefaultToolbarStyle}" />
<StackPanel
Grid.Column="2"
Margin="0,0,10,0"
Orientation="Horizontal">
<!-- SELECTION -->
<GroupBox
Margin="0,3,0,5"
Padding="4,6,4,1"
VerticalAlignment="Top"
FontSize="9"
Header="{x:Static Properties:Resources.MainWindow_SelectionGroupBox_Header}">
<StackPanel VerticalAlignment="Center" Orientation="Horizontal">
<StackPanel.Resources>
<Style x:Key="tbCountStyle" TargetType="TextBlock">
<Setter Property="Margin" Value="0,3,0,0" />
<Setter Property="FontSize" Value="11" />
<Setter Property="TextAlignment" Value="Center" />
<Setter Property="ToolTip" Value="{x:Static Properties:Resources.MainWindow_SelectionTooltip}" />
</Style>
</StackPanel.Resources>
<!-- ALL -->
<StackPanel Orientation="Vertical">
<ContentControl HorizontalAlignment="Center" Content="{StaticResource RadioButtonAll}" />
<TextBlock Style="{StaticResource tbCountStyle}">
<TextBlock.Text>
<MultiBinding StringFormat="{}[ {0} / {1} ]">
<Binding Mode="OneWay" Path="ItemsFilterCount" />
<Binding Mode="OneWay" Path="Items.Count" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
<!-- DEBUG -->
<StackPanel Margin="15,0,0,0" Orientation="Vertical">
<ContentControl HorizontalAlignment="Center" Content="{StaticResource RadioButtonDebug}" />
<TextBlock Style="{StaticResource tbCountStyle}">
<TextBlock.Text>
<MultiBinding StringFormat="{}[ {0} / {1} ]">
<Binding Mode="OneWay" Path="ItemsDebugFilterCount" />
<Binding Mode="OneWay" Path="ItemsDebugCount" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
<!-- INFO -->
<StackPanel Margin="15,0,0,0" Orientation="Vertical">
<ContentControl HorizontalAlignment="Center" Content="{StaticResource RadioButtonInfo}" />
<TextBlock Style="{StaticResource tbCountStyle}">
<TextBlock.Text>
<MultiBinding StringFormat="{}[ {0} / {1} ]">
<Binding Mode="OneWay" Path="ItemsInfoFilterCount" />
<Binding Mode="OneWay" Path="ItemsInfoCount" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
<!-- WARN -->
<StackPanel Margin="15,0,0,0" Orientation="Vertical">
<ContentControl HorizontalAlignment="Center" Content="{StaticResource RadioButtonWarn}" />
<TextBlock Style="{StaticResource tbCountStyle}">
<TextBlock.Text>
<MultiBinding StringFormat="{}[ {0} / {1} ]">
<Binding Mode="OneWay" Path="ItemsWarnFilterCount" />
<Binding Mode="OneWay" Path="ItemsWarnCount" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
<!-- ERROR -->
<StackPanel Margin="15,0,0,0" Orientation="Vertical">
<ContentControl HorizontalAlignment="Center" Content="{StaticResource RadioButtonError}" />
<TextBlock Style="{StaticResource tbCountStyle}">
<TextBlock.Text>
<MultiBinding StringFormat="{}[ {0} / {1} ]">
<Binding Mode="OneWay" Path="ItemsErrorFilterCount" />
<Binding Mode="OneWay" Path="ItemsErrorCount" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
<!-- FATAL -->
<StackPanel Margin="15,0,0,0" Orientation="Vertical">
<ContentControl HorizontalAlignment="Center" Content="{StaticResource RadioButtonFatal}" />
<TextBlock Style="{StaticResource tbCountStyle}">
<TextBlock.Text>
<MultiBinding StringFormat="{}[ {0} / {1} ]">
<Binding Mode="OneWay" Path="ItemsFatalFilterCount" />
<Binding Mode="OneWay" Path="ItemsFatalCount" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</StackPanel>
</GroupBox>
<!-- SHOW/HIDE -->
<GroupBox
Margin="10,3,0,0"
Padding="0,6,5,5"
VerticalAlignment="Top"
FontSize="9"
Header="{x:Static Properties:Resources.MainWindow_ShowHideGroupBox_Header}">
<StackPanel Orientation="Horizontal">
<StackPanel.Resources>
<Style BasedOn="{StaticResource DefaultBorderStyle}" TargetType="{x:Type Border}">
<Setter Property="Padding" Value="2" />
<Setter Property="Margin" Value="10,0,0,0" />
</Style>
</StackPanel.Resources>
<Border Background="{StaticResource DebugLevelColor}">
<CheckBox
Name="chkShowDebug"
IsChecked="{Binding Path=ShowLevelDebug}"
ToolTip="DEBUG" />
</Border>
<Border Background="{StaticResource InfoLevelColor}">
<CheckBox
Name="chkShowInfo"
IsChecked="{Binding Path=ShowLevelInfo}"
ToolTip="INFO" />
</Border>
<Border Background="{StaticResource WarnLevelColor}">
<CheckBox
Name="chkShowWarn"
IsChecked="{Binding Path=ShowLevelWarn}"
ToolTip="WARN" />
</Border>
<Border Background="{StaticResource ErrorLevelColor}">
<CheckBox
Name="chkShowError"
IsChecked="{Binding Path=ShowLevelError}"
ToolTip="ERROR" />
</Border>
<Border Background="{StaticResource FatalLevelColor}">
<CheckBox
Name="chkShowFatal"
IsChecked="{Binding Path=ShowLevelFatal}"
ToolTip="FATAL" />
</Border>
</StackPanel>
</GroupBox>
</StackPanel>
</Grid>
</StackPanel>
<!-- BOTTOM -->
<DockPanel DockPanel.Dock="Bottom">
<StackPanel
HorizontalAlignment="Left"
DockPanel.Dock="Left"
Orientation="Horizontal">
<CheckBox
Name="chkAutoRefresh"
Margin="3,0,0,0"
VerticalAlignment="Center"
Content="{x:Static Properties:Resources.MainWindow_AutoRefresh_Checkbox_Text}"
FontWeight="DemiBold"
IsChecked="{Binding Path=IsAutoRefreshEnabled}" />
<StackPanel
Margin="3,0,0,0"
VerticalAlignment="Center"
Orientation="Horizontal"
Visibility="{Binding Path=IsChecked, ElementName=chkAutoRefresh, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}">
<RepeatButton
Height="17"
VerticalAlignment="Center"
Background="{x:Null}"
Command="{Binding Path=CommandDecreaseInterval}"
Focusable="False"
ToolTip="{x:Static Properties:Resources.MainWindow_AutoRefresh_DecreaseInterval_Tooltip}">
<TextBlock Margin="0,-2,0,0" Text="&lt;" />
</RepeatButton>
<Border
MinWidth="36"
Padding="1"
BorderBrush="Gray"
BorderThickness="1,1"
CornerRadius="2">
<TextBlock
FontSize="11"
Text="{Binding Path=AutoRefreshIntervalLocalized, Mode=OneWay}"
TextAlignment="Right"
ToolTip="{x:Static Properties:Resources.MainWindow_AutoRefresh_RefreshInterval_Tooltip}" />
</Border>
<RepeatButton
Height="17"
VerticalAlignment="Center"
Background="{x:Null}"
Command="{Binding Path=CommandIncreaseInterval}"
Focusable="False"
ToolTip="{x:Static Properties:Resources.MainWindow_AutoRefresh_IncreaseInterval_Tooltip}">
<TextBlock Margin="0,-2,0,0" Text="&gt;" />
</RepeatButton>
</StackPanel>
</StackPanel>
<StackPanel
HorizontalAlignment="Right"
DockPanel.Dock="Right"
Orientation="Horizontal">
<StackPanel.Resources>
<Style x:Key="LabelBaseStyle" TargetType="{x:Type TextBlock}">
<Setter Property="FontSize" Value="{StaticResource DefaultFontSize}" />
<Setter Property="FontWeight" Value="DemiBold" />
<Setter Property="HorizontalAlignment" Value="Left" />
</Style>
<Style x:Key="TextBlockBaseStyle" TargetType="{x:Type TextBlock}">
<Setter Property="FontSize" Value="{StaticResource DefaultFontSize}" />
<Setter Property="Margin" Value="3,0,0,0" />
<Setter Property="MinWidth" Value="80" />
</Style>
<Style x:Key="PanelBaseStyle" TargetType="{x:Type StackPanel}">
<Setter Property="Margin" Value="20,3,5,3" />
<Setter Property="Orientation" Value="Horizontal" />
</Style>
</StackPanel.Resources>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_Class_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.Class, Mode=OneWay}" />
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_Method_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.Method, Mode=OneWay}" />
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_File_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.File, Mode=OneWay}" />
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_Line_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.Line, Mode=OneWay}" />
</StackPanel>
</StackPanel>
</DockPanel>
<!-- LEFT -->
<Grid Width="250" DockPanel.Dock="Left">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<DockPanel Grid.Row="0" LastChildFill="True">
<DockPanel DockPanel.Dock="Top" LastChildFill="True">
<ToggleButton
Width="22"
Margin="1,0,0,0"
VerticalAlignment="Stretch"
DockPanel.Dock="Right"
IsChecked="{Binding Path=IsFileSelectionEnabled}"
ToolTip="{x:Static Properties:Resources.MainWindow_MergeFile_Tooltip}">
<Image Source="/Resources/Icons/selection.png" />
</ToggleButton>
<ComboBox
Height="22"
IsEditable="False"
ItemsSource="{Binding Path=FolderList, Mode=OneWay}"
SelectedItem="{Binding Path=SelectedFolder}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,2" Orientation="Vertical">
<TextBlock FontWeight="DemiBold" Text="{Binding Path=Name, Mode=OneWay}" />
<TextBlock
FontSize="11"
Foreground="#FF595959"
Text="{Binding Path=Path, Mode=OneWay, StringFormat='{}[{0}]'}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</DockPanel>
<Grid>
<ListBox
BorderBrush="{StaticResource GrayGradientBackground}"
BorderThickness="1,1,1,0"
ContextMenu="{StaticResource FilesListBoxContextMenu}"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Path=FileList, Mode=OneWay}"
SelectedItem="{Binding Path=SelectedFile}"
SelectionMode="Single"
Visibility="{Binding Path=IsFileSelectionEnabled, Mode=OneWay, Converter={StaticResource BoolToOppositeVisibilityConverter}}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Teal" />
<!--
<SolidColorBrush
x:Key="{x:Static SystemColors.ControlBrushKey}"
Color="Transparent" />
-->
</Style.Resources>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=FileName, Mode=OneWay, FallbackValue=''}" ToolTip="{Binding Path=Path, Mode=OneWay}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<ListBox
BorderBrush="{StaticResource GrayGradientBackground}"
BorderThickness="1,1,1,0"
ContextMenu="{StaticResource FilesListBoxContextMenu}"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Path=FileList, Mode=OneWay}"
SelectionMode="Single"
Visibility="{Binding Path=IsFileSelectionEnabled, Mode=OneWay, Converter={StaticResource BoolToVisibilityConverter}}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
</Style.Resources>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" ToolTip="{Binding Path=Path, Mode=OneWay}">
<!--
<Polygon
Margin="0,0,2,0"
Name="fIndicator"
Points="0,0 6,5 0,10 0,0"
VerticalAlignment="Center" />
-->
<CheckBox
Name="fCheck"
VerticalAlignment="Center"
Content="{Binding Path=FileName, Mode=OneWay, FallbackValue=''}"
IsChecked="{Binding Path=Checked, FallbackValue=False}" />
<Border
Name="fIndicator"
Width="7"
Height="7"
Margin="5,1,0,0"
VerticalAlignment="Center"
Background="Transparent"
CornerRadius="3" />
</StackPanel>
<DataTemplate.Triggers>
<DataTrigger Value="True">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource MultiValueEqualsToBoolConverter}">
<Binding Mode="OneWay" Path="Path" />
<Binding
ElementName="dgItems"
Mode="OneWay"
Path="SelectedItem.Path" />
</MultiBinding>
</DataTrigger.Binding>
<Setter TargetName="fIndicator" Property="Background" Value="Teal" />
<Setter TargetName="fCheck" Property="Foreground" Value="Teal" />
<Setter TargetName="fCheck" Property="FontWeight" Value="Bold" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</DockPanel>
<GridSplitter
Grid.Row="1"
HorizontalAlignment="Stretch"
ResizeDirection="Rows"
Style="{StaticResource DefaultGridSplitterStyle}" />
<Border
Grid.Row="2"
BorderBrush="Silver"
BorderThickness="0,0,1,1">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<StackPanel>
<StackPanel.Resources>
<Style x:Key="LabelBaseStyle" TargetType="{x:Type TextBlock}">
<Setter Property="FontSize" Value="{StaticResource DefaultFontSize}" />
<Setter Property="FontWeight" Value="DemiBold" />
<Setter Property="HorizontalAlignment" Value="Left" />
</Style>
<Style x:Key="TextBlockBaseStyle" TargetType="{x:Type TextBlock}">
<Setter Property="FontSize" Value="{StaticResource DefaultFontSize}" />
<Setter Property="Margin" Value="0,1" />
</Style>
<Style x:Key="PanelBaseStyle" TargetType="{x:Type StackPanel}">
<Setter Property="Margin" Value="2,3" />
<Setter Property="Orientation" Value="Vertical" />
</Style>
</StackPanel.Resources>
<TextBlock Text="" />
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_ItemId_Text}" />
<TextBox
Name="txtItemId"
MinWidth="42"
Margin="0,1"
HorizontalAlignment="Left"
FontSize="{StaticResource DefaultFontSize}"
FontStyle="Italic"
Text="{Binding Path=GoToLogItemId, UpdateSourceTrigger=PropertyChanged}" />
<!--
<TextBlock
Style="{StaticResource TextBlockBaseStyle}"
Text="{Binding Path=SelectedLogItem.Id, Mode=OneWay}">
</TextBlock>
-->
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_Logger_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.Logger, Mode=OneWay}" />
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_Level_Text}" />
<StackPanel Orientation="Horizontal">
<TextBlock
MinWidth="38"
Style="{StaticResource TextBlockBaseStyle}"
Text="{Binding Path=SelectedLogItem.Level, Mode=OneWay}" />
<Border
Width="11"
Height="11"
Margin="2,0,0,0"
VerticalAlignment="Center"
Background="{Binding Path=SelectedLogItem.LevelIndex, Mode=OneWay, Converter={StaticResource LevelToSolidColorConverter}}"
BorderBrush="{StaticResource BorderColor}"
BorderThickness="1"
CornerRadius="6"
Visibility="{Binding Path=SelectedLogItem.Level, Mode=OneWay, Converter={StaticResource StringEmptyToVisibilityConverter}, FallbackValue=Collapsed}" />
</StackPanel>
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_TimeStamp_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}">
<TextBlock.Text>
<Binding
ConverterCulture="{x:Static yalv:MainWindow.ResolvedCulture}"
Mode="OneWay"
Path="SelectedLogItem.TimeStamp"
StringFormat="{x:Static Properties:Resources.MainWindow_FullDateTimeFormatWithMilliseconds}" />
</TextBlock.Text>
</TextBlock>
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_TimeDiff_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.Delta, Mode=OneWay, Converter={StaticResource TimeDeltaDoubleToLocalizedStringConverter}}" />
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_MachineName_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.MachineName, Mode=OneWay}" />
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_HostName_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.HostName, Mode=OneWay}" />
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_UserName_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.UserName, Mode=OneWay}" />
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_Application_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.App, Mode=OneWay}" />
</StackPanel>
<StackPanel Style="{StaticResource PanelBaseStyle}">
<TextBlock Style="{StaticResource LabelBaseStyle}" Text="{x:Static Properties:Resources.MainWindow_DetailsBox_Thread_Text}" />
<TextBlock Style="{StaticResource TextBlockBaseStyle}" Text="{Binding Path=SelectedLogItem.Thread, Mode=OneWay}" />
</StackPanel>
</StackPanel>
</ScrollViewer>
</Border>
</Grid>
<!-- RIGHT -->
<Grid DockPanel.Dock="Right">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<DockPanel Grid.Row="0" LastChildFill="True">
<Border DockPanel.Dock="Top">
<ScrollViewer
local:ScrollSynchronizer.ScrollGroup="dgSync"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Disabled">
<StackPanel
Name="txtSearchPanel"
Margin="0,0,25,0"
Background="Transparent"
Orientation="Horizontal" />
</ScrollViewer>
</Border>
<DataGrid
Name="dgItems"
Margin="0,1,0,0"
CanUserReorderColumns="True"
CellStyle="{StaticResource DefaultDataGridCellStyle}"
ColumnHeaderStyle="{StaticResource DefaultDataGridHeaderStyle}"
IsSynchronizedWithCurrentItem="True"
RowStyle="{StaticResource LogItemDataGridRowStyle}"
SelectedItem="{Binding Path=SelectedLogItem}"
Style="{StaticResource DefaultDataGridStyle}">
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem Command="ApplicationCommands.Copy" Header="{x:Static Properties:Resources.MainWindow_GridContextMenu_CopyToClipboard}" />
</ContextMenu>
</DataGrid.ContextMenu>
<DataGrid.Resources>
<Style TargetType="ScrollViewer">
<Setter Property="local:ScrollSynchronizer.ScrollGroup" Value="dgSync" />
</Style>
<!--<SolidColorBrush
x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="#19000000" />-->
</DataGrid.Resources>
</DataGrid>
</DockPanel>
<GridSplitter
Grid.Row="1"
HorizontalAlignment="Stretch"
ResizeDirection="Rows"
Style="{StaticResource DefaultGridSplitterStyle}" />
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="2.5*" />
</Grid.ColumnDefinitions>
<DockPanel Grid.Column="0" LastChildFill="True">
<TextBlock
Margin="1,0,0,0"
DockPanel.Dock="Top"
FontWeight="DemiBold"
Text="{x:Static Properties:Resources.MainWindow_DetailsBox_Message_Text}" />
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<TextBox
BorderBrush="Silver"
BorderThickness="0,1"
IsReadOnly="True"
Text="{Binding Path=SelectedLogItem.Message, Mode=OneWay}"
TextWrapping="Wrap" />
</ScrollViewer>
</DockPanel>
<GridSplitter
Grid.Column="1"
Margin="0,15,0,0"
VerticalAlignment="Stretch"
ResizeBehavior="PreviousAndNext"
ResizeDirection="Columns"
Style="{StaticResource DefaultGridSplitterStyle}" />
<DockPanel Grid.Column="2" LastChildFill="True">
<TextBlock
Margin="1,0,0,0"
DockPanel.Dock="Top"
FontWeight="DemiBold"
Text="{x:Static Properties:Resources.MainWindow_DetailsBox_Throwable_Text}" />
<ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<TextBox
BorderBrush="Silver"
BorderThickness="0,1"
IsReadOnly="True"
Text="{Binding Path=SelectedLogItem.Throwable, Mode=OneWay}"
TextWrapping="Wrap" />
</ScrollViewer>
</DockPanel>
</Grid>
</Grid>
</DockPanel>
</Grid>
</Window>