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>
    </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_25x25.png" Tag="/images/content-save_25x25.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_25x25.png" Tag="/images/delete-alert_25x25.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>