<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    
    <!-- Main Application Styling -->
    
    <!-- Style for the application window -->
    <Style x:Key="WindowStyle" TargetType="Window">
        <Setter Property="Width" Value="400" />
        <Setter Property="Height" Value="Auto" />
    </Style>

    <!-- Style for the Menu -->
    <Style TargetType="Menu">
    </Style>

    <!-- Style for the Menu Items -->
    <Style TargetType="MenuItem">
    </Style>

    <!-- Style for the Banner image -->
    <Style x:Key="BannerImageStyle" TargetType="Image">
        <Setter Property="Margin" Value="0" />
        <Setter Property="Height" Value="0" />
        <Setter Property="Width" Value="0" />
    </Style>

	<!-- Style for the Product Image when a device is connected -->
    <Style x:Key="ConnectedDeviceImageStyle" TargetType="Image">
        <Setter Property="Margin" Value="5" />
        <Setter Property="MaxHeight" Value="128" />
        <Setter Property="MaxWidth" Value="128" />
    </Style>

	<!-- Style for the Product Name when a device is connected -->
    <Style x:Key="ConnectedDeviceTextStyle" TargetType="Label">
        <Setter Property="Margin" Value="5,5,5,0" />
        <Setter Property="Padding" Value="0" />
        <Setter Property="VerticalAlignment" Value="Center" />
        <Setter Property="FontSize" Value="16" />
        <Setter Property="FontWeight" Value="Bold" />
    </Style>

	<!-- Style for the Product Description when a device is connected -->
    <Style x:Key="ConnectedDeviceDescriptionStyle" TargetType="Label">
        <Setter Property="Margin" Value="5,0,5,5" />
        <Setter Property="Padding" Value="0" />
        <Setter Property="VerticalAlignment" Value="Center" />
        <Setter Property="FontSize" Value="12" />
        <Setter Property="FontStyle" Value="Italic" />
    </Style>
    
    <!-- Style for the setting name text label -->
    <Style x:Key="SettingNameStyle" TargetType="Label">
        <Setter Property="Margin" Value="15,5,5,5" />
        <Setter Property="Padding" Value="0" />
        <Setter Property="VerticalAlignment" Value="Center" />
    </Style>
    
    <!-- Base style for all setting value controls in the application -->
    <!-- This style is based on the DefaultErrorStyle for showing setting errors. -->
    <!-- The DefaultErrorStyle sets the Validation.ErrorTemplate property to a custom ControlTemplate and the ToolTip property to the error message, when errors occur -->
    <!-- If you would like to create your own error template, simply remove the BasedOn property from this style -->
    <Style x:Key="SettingValueBaseStyle" TargetType="FrameworkElement" BasedOn="{StaticResource DefaultErrorStyle}">
        <Setter Property="Margin" Value="5,5,15,5" />
        <Setter Property="VerticalAlignment" Value="Center" />
    </Style>
    
    <!-- Style for text-based setting values -->
    <Style x:Key="SettingValueTextStyle" TargetType="TextBox" BasedOn="{StaticResource SettingValueBaseStyle}">
    </Style>

    <!-- Style for number-based setting values -->
    <Style x:Key="SettingValueNumberStyle" TargetType="TextBox" BasedOn="{StaticResource SettingValueBaseStyle}">
    </Style>

    <!-- Style for checkbox-based setting values -->
    <Style x:Key="SettingValueCheckboxStyle" TargetType="CheckBox" BasedOn="{StaticResource SettingValueBaseStyle}">
    </Style>

    <!-- Style for selection-based setting values -->
    <Style x:Key="SettingValueSelectionStyle" TargetType="ComboBox" BasedOn="{StaticResource SettingValueBaseStyle}">
    </Style>
    
    <!-- Base style for all buttons in the application -->
    <Style x:Key="ButtonStyle" TargetType="Button">
        <Setter Property="Margin" Value="5" />
        <Setter Property="Padding" Value="5" />
    </Style>

    <!-- Style for the Submit button -->
    <Style x:Key="SubmitButtonStyle" TargetType="Button" BasedOn="{StaticResource ButtonStyle}">
    </Style>

    <!-- Style for the Reload button -->
    <Style x:Key="ReloadButtonStyle" TargetType="Button" BasedOn="{StaticResource ButtonStyle}">
    </Style>

    <!-- Style for the status bar -->
    <Style TargetType="StatusBar">
    </Style>

    <!-- Style for the status text displayed in the status bar -->
    <Style TargetType="StatusBarItem">
    </Style>


    <!-- About Box Styling -->
    
    <!-- Style for the About Box window -->
    <Style x:Key="AboutWindowStyle" TargetType="Window">
        <Setter Property="Width" Value="300" />
        <Setter Property="Height" Value="Auto" />
        <Setter Property="SizeToContent" Value="Height" />
    </Style>

    <!-- Style for the About Box's Banner image -->
    <Style x:Key="AboutBannerImageStyle" TargetType="Image">
        <Setter Property="Margin" Value="0" />
        <Setter Property="Height" Value="0" />
        <Setter Property="Width" Value="0" />
    </Style>

    <!-- Style for the About Box's product information text -->
    <Style x:Key="AboutProductInfoStyle" TargetType="Label">
        <Setter Property="Padding" Value="0" />
        <Setter Property="Foreground" Value="Black" />
        <Setter Property="FontWeight" Value="Bold" />
    </Style>
    
    <!-- Style for the About Box's read-only product details area -->
    <Style x:Key="AboutProductDetailsStyle" TargetType="TextBox">
        <Setter Property="Height" Value="100" />
        <Setter Property="VerticalScrollBarVisibility" Value="Visible" />
    </Style>

    <!-- Style for the About Box's link to the company's website -->
    <Style x:Key="AboutLinkStyle" TargetType="Label">
        <Setter Property="Control.Padding" Value="0" />
        <Setter Property="Control.VerticalAlignment" Value="Center" />
    </Style>

    <!-- Style for the About Box's OK button -->
    <Style x:Key="AboutOkButtonStyle" TargetType="Button" BasedOn="{StaticResource ButtonStyle}">
        <Setter Property="MinWidth" Value="65" />
        <Setter Property="Padding" Value="0" />
    </Style>

</ResourceDictionary>