lib/ui/LogForm.xaml

<Window 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:local="clr-x:Namespace:Fortigi"
        Title="Log Viewer"
        Width="450"
        MinWidth="450"
        MinHeight="300"
        Background="{DynamicResource {x:Static SystemColors.ScrollBarBrushKey}}"
        BorderBrush="{DynamicResource {x:Static SystemColors.ActiveBorderBrushKey}}"
        Name="LogWindow">
 
    <Window.Resources>
        <Style TargetType="TextBox">
            <Setter Property="Background"
                    Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
        </Style>
        <Style TargetType="Label">
            <Setter Property="VerticalContentAlignment"
                    Value="Center"/>
            <Setter Property="Height"
                    Value="25"/>
            <Setter Property="Width"
                    Value="100"/>
        </Style>
        <Style TargetType="Separator">
            <Setter Property="Background"
                    Value="Transparent"/>
        </Style>
        <!--<Style TargetType="Button">
            <Setter Property="Height" Value="25"/>
            <Setter Property="Width" Value="95"/>
        </Style>-->
        <Style TargetType="ComboBox">
            <Setter Property="VerticalContentAlignment"
                    Value="Center"/>
            <Setter Property="HorizontalContentAlignment"
                    Value="Left"/>
            <Setter Property="Height"
                    Value="25"/>
            <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="11"/>
        </Style>
        <Style TargetType="Image">
            <Setter Property="Height"
                    Value="15"/>
            <Setter Property="Width"
                    Value="15"/>
            <Setter Property="VerticalAlignment"
                    Value="Center"/>
        </Style>
    </Window.Resources>
 
    <Grid Grid.Row="0">
        <Grid.RowDefinitions>
            <RowDefinition Height="10"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="40"/>
            <RowDefinition Height="30"/>
            <RowDefinition Height="10"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="10"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="10"/>
        </Grid.ColumnDefinitions>
 
        <Border Grid.Row="1"
                Grid.Column="1"
                BorderBrush="Gray"
                BorderThickness="1"
                Background="{DynamicResource {x:Static SystemColors.AppWorkspaceBrushKey}}">
            <TextBox x:Name="TextBoxLog"
                     AcceptsReturn="True"
                     VerticalScrollBarVisibility="Auto"
                     HorizontalScrollBarVisibility="Auto"
                     FontFamily="Consolas"
                     IsReadOnly="True"
                     HorizontalAlignment="Stretch"
                     VerticalAlignment="Stretch"
                     Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
                     VerticalContentAlignment="Top"/>
        </Border>
        <StackPanel Orientation="Horizontal"
                    Grid.Row="2"
                    Grid.Column="1"
                    VerticalAlignment="Center">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="20"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Button Grid.Column="1"
                        x:Name="ButtonExportLogFile"
                        TabIndex="15"
                        ToolTip="Export log file"
                        IsEnabled="True">
                    <Grid HorizontalAlignment="Center"
                          VerticalAlignment="Center">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="6"/>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="4"/>
                            <ColumnDefinition Width="40"/>
                        </Grid.ColumnDefinitions>
                        <Image Grid.Column="1"
                               x:Name="ButtonExportLogFileImage"
                               Source="/images/content-save_15x15.png"
                               Tag="/images/content-save_15x15.png"
                               IsHitTestVisible="False"/>
                        <AccessText Grid.Column="3"
                                    x:Name="ButtonExportLogFileText"
                                    Text="_Save"
                                    Style="{StaticResource ButtonAccessTextStyle}"
                                    IsHitTestVisible="False"/>
                    </Grid>
                </Button>
                <Button Grid.Column="3"
                        x:Name="ButtonClearLog"
                        TabIndex="15"
                        ToolTip="Clear log"
                        IsEnabled="True">
                    <Grid HorizontalAlignment="Center"
                          VerticalAlignment="Center">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="6"/>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="4"/>
                            <ColumnDefinition Width="40"/>
                        </Grid.ColumnDefinitions>
                        <Image Grid.Column="1"
                               x:Name="ButtonClearLogImage"
                               Source="/images/delete-alert_15x15.png"
                               Tag="/images/delete-alert_15x15.png"
                               IsHitTestVisible="False"/>
                        <AccessText Grid.Column="3"
                                    x:Name="ButtonClearLogText"
                                    Text="_Clear"
                                    Style="{StaticResource ButtonAccessTextStyle}"
                                    IsHitTestVisible="False"/>
                    </Grid>
                </Button>
            </Grid>
        </StackPanel>
        <StackPanel Orientation="Vertical"
                    Grid.Row="3"
                    Grid.Column="1"
                    VerticalAlignment="Center">
            <StackPanel Orientation="Horizontal">
                <Label x:Name="LabelSelectLogLevel"
                       Content="Log Level:"
                       ToolTip="Select log level"
                       HorizontalAlignment="Left"
                       Width="Auto"/>
                <Separator Width="10"/>
                <ComboBox x:Name="ComboBoxSelectLogLevel"
                          SelectedIndex="0"
                          ToolTip="Select log level"
                          Width="80">
                    <ComboBoxItem Content="LOG"/>
                    <ComboBoxItem Content="INFO"/>
                    <ComboBoxItem Content="WARNING"/>
                    <ComboBoxItem Content="ERROR"/>
                    <ComboBoxItem Content="FATAL"/>
                    <ComboBoxItem Content="DEBUG"/>
                    <ComboBoxItem Content="VERBOSE"/>
                    <ComboBoxItem Content="VERBOSE2"/>
                </ComboBox>
                <Separator Width="20"/>
                <CheckBox x:Name="CheckboxWordWrap"
                          Content="Word wrap"
                          VerticalAlignment="Center"
                          ToolTip="Word wrap"/>
                <Separator Width="20"/>
                <CheckBox x:Name="CheckboxConsoleLog"
                          Content="Console Log"
                          VerticalAlignment="Center"
                          ToolTip="Log output in console"/>
            </StackPanel>
        </StackPanel>
    </Grid>
 
</Window>