Я это всё запускал с диска. Существует ли какое-нибудь ПО, которое можно точно так же, просто вставив диск запустить
<Window x:Class="WpfApplication1.MainWindow"
xmlns="<a href="http://schemas.microsoft.com/winfx/2006/xaml/presentation">http://schemas.microsoft.com/winfx/2006/xaml/presentation</a>"
xmlns:x="<a href="http://schemas.microsoft.com/winfx/2006/xaml">http://schemas.microsoft.com/winfx/2006/xaml</a>"
xmlns:wpfApplication1="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ResourceDictionary>
<wpfApplication1:ConverterNull x:Key="ConverterNull"/>
</ResourceDictionary>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30"></RowDefinition>
<RowDefinition Height="5"></RowDefinition>
<RowDefinition Height="30"></RowDefinition>
</Grid.RowDefinitions>
<ComboBox Name ="cmb" DisplayMemberPath="Value" SelectedValuePath = "id" ></ComboBox>
<TextBox Name="tb" Grid.Row="2" Text="{Binding ElementName=cmb, Path=SelectedItem.Value,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Converter={StaticResource ConverterNull}}"></TextBox>
</Grid>
</Window>
<Window.Resources>
<ResourceDictionary>
<wpfApplication1:ConverterNull x:Key="ConverterNull"/>
</ResourceDictionary>
</Window.Resources>
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace WpfApplication1
{
public partial class MainWindow : Window
{
private List<Info> info;
public MainWindow()
{
InitializeComponent();
info = new List<Info>
{
new Info("a"),
new Info("b"),
new Info("c")
};
cmb.ItemsSource = info;
}
}
public class Info
{
public Guid id { get; private set; }
public string Value { get; set; }
public Info(String val)
{
id = Guid.NewGuid();
Value = val;
}
}
sealed class ConverterNull : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return value == null ? null : String.IsNullOrWhiteSpace(value.ToString()) ? null : value;
}
}
}
<ControlTemplate x:Key="DefaultWindowTemplate" TargetType="{x:Type Window}">
<Border Name="FakeBorder" BorderBrush="Green">
<Border.Style>
<Style TargetType="{x:Type Border}">
<Setter Property="BorderThickness" Value="0"/>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=WindowState}" Value="Maximized">
<Setter Property="BorderThickness" Value="{Binding Source={x:Static shell:SystemParameters2.Current}, Path=WindowResizeBorderThickness}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Border Name="WindowBorder"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" Margin="0">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="{StaticResource grdlenWindowCaptionHeight}" />
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Border Name="TitleBorder" Background="{TemplateBinding Background}" Margin="{TemplateBinding Margin}" >
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="5" />
</Grid.ColumnDefinitions>
<StackPanel Orientation="Horizontal">
<Image Margin="6,4,6,4" Source="{TemplateBinding Icon}" VerticalAlignment="Center"/>
<TextBlock VerticalAlignment="Center" Margin="0,0,0,0" Text="{TemplateBinding Title}" Style="{StaticResource WindowTitleTextBlock}" />
</StackPanel>
<Button Name="MinimizeButton"
Grid.Column="1"
Margin="0"
Style="{StaticResource ButtonWindowTitle}"
Command="{Binding Source={x:Static theme:ThemeCommands.Windows}, Path=MinWindow}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
<Path Data="{StaticResource iconWindowMinimize}" Style="{StaticResource PathIcon9}" />
</Button>
<Button Name="MaximizeButton"
Grid.Column="2"
Style="{StaticResource ButtonWindowTitle}"
Command="{Binding Source={x:Static theme:ThemeCommands.Windows}, Path=MaxWindow}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
<Path Name="MaximizeIcon" Data="{StaticResource iconWindowMaximize}" Style="{StaticResource PathIcon9}"/>
</Button>
<Button Name="CloseButton"
Grid.Column="3"
Style="{StaticResource ButtonWindowTitle}"
Command="{Binding Source={x:Static theme:ThemeCommands.Windows}, Path=CloseWindow}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}">
<Path Data="{StaticResource iconWindowClose}" Style="{StaticResource PathIcon9}" />
</Button>
</Grid>
</Border>
<ContentPresenter Margin="0" Grid.Row="1" Content="{TemplateBinding Content}"/>
</Grid>
</Border>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="WindowState" Value="Maximized">
<Setter TargetName="MaximizeIcon" Property="Data" Value="{StaticResource iconWindowRestore}" />
</Trigger>
<Trigger Property="IsActive" Value="False">
<Setter TargetName="WindowBorder" Property="BorderBrush" Value="{StaticResource WindowBorderInactiveBrush}" />
</Trigger>
<Trigger Property="WindowStyle" Value="ToolWindow">
<Setter TargetName="MinimizeButton" Property="Visibility" Value="Hidden" />
<Setter TargetName="MaximizeButton" Property="Visibility" Value="Hidden" />
</Trigger>
<Trigger Property="WindowStyle" Value="ThreeDBorderWindow">
<Setter Property="BorderThickness" Value="7" />
</Trigger>
<Trigger Property="WindowStyle" Value="None">
<Setter TargetName="MinimizeButton" Property="Visibility" Value="Hidden" />
<Setter TargetName="MaximizeButton" Property="Visibility" Value="Hidden" />
<Setter TargetName="CloseButton" Property="Visibility" Value="Hidden" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
<Style x:Key="WindowDefault" TargetType="{x:Type Window}">
<Setter Property="Background" Value="{StaticResource WindowBackgroundBrush}" />
<Setter Property="Foreground" Value="{StaticResource ControlForegroundBrush}" />
<Setter Property="BorderBrush" Value="{StaticResource AccentBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="FontFamily" Value="{StaticResource DefaultFont}"/>
<Setter Property="FontSize" Value="{StaticResource DefaultFontSize}" />
<Setter Property="TextOptions.TextFormattingMode" Value="Display" />
<Setter Property="TextOptions.TextRenderingMode" Value="ClearType" />
<Setter Property="SnapsToDevicePixels" Value="True" />
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="shell:WindowChrome.WindowChrome">
<Setter.Value>
<shell:WindowChrome
ResizeBorderThickness="6"
CaptionHeight="{StaticResource WindowCaptionHeight}"
CornerRadius="0"
GlassFrameThickness="0,0,0,1"/>
</Setter.Value>
</Setter>
<Setter Property="Template" Value="{DynamicResource DefaultWindowTemplate}"/>
</Style>
Если вы метите в джуниоры, то вам нужно несколько изменить порядок книг в вашей очереди.
Отложите алгоритмы и TDD на последнюю очередь -- это безусловно очень важные темы, но для вашей цели не первоочередные.
Познакомьтесь с паттернами (GoF) и "Рефакторингом" Фаулера.
Прочитайте вдумчиво английское издание Effective Java Джошуа Блоха. Не загромождайте (поначалу) голову паззлерами.
Ну и, наконец, сформируйте то, что нужно работодателю -- кругозор. Получите представление о вещах, вращающихся вокруг Java. Вот вам набор ключевых слов: Java Collections Framework, Java EE, Spring Framework, Maven, Glassfish, JDBC... Не нужно углубляться. Осознайте, что это такое. Изучите туториалы.
Я считаю, для поставленной цели этого достаточно.
Разаные цвета имеют разную восприимчивость чел. глазом, соответственно усреднять нельзя.
Если имеется ввиду формула, то вот один из вариантов:
G = 0.21 * R + 0.71 * G + 0.07 * B