I have a program that uses a custom window control. In VS2013, the window perfectly displays the appearance in the design, the exact same solution opened in VS2015 does not work. Compiles and works great at runtime.


The following are snippets of the corresponding code:
<control:CustomWindow x:Class="CategoryView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:control="clr-namespace:ClassAccounts;assembly=ClassAccounts"
xmlns:l="clr-namespace:WpfAccounts"
Title="Category" Width="470" Height="485" WindowStartupLocation="CenterScreen" OKVisibility="True">
<Window.Resources>
<CollectionViewSource Source="{Binding Categories}" x:Key="Categories"/>
<CollectionViewSource Source="{Binding Headings}" x:Key="Headings"/>
<DataTemplate x:Key="CategoryTemplate">
<TextBlock Text="{Binding comment}" Margin="0" Foreground="{Binding forecolor}"/>
</DataTemplate>
</Window.Resources>
<Grid>
...
</Grid>
Application.xaml
<Application x:Class="Application"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:l="clr-namespace:WpfAccounts"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/ClassAccounts;component/Themes/Generic.xaml"/>
</ResourceDictionary.MergedDictionaries>
<MenuScrollingVisibilityConverter x:Key="MenuScrollingVisibilityConverter"/>
<Style TargetType="{x:Type Separator}" x:Key="SeparatorStyle">
<Setter Property="Height" Value="1"/>
<Setter Property="Background" Value="{StaticResource CustomDarkBlue}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Separator}">
<Rectangle Height="{TemplateBinding Height}" Fill="{StaticResource CustomWhite}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
...
</ResourceDictionary>
</Application.Resources>
Assemblyinfo.vb
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
Imports System.Globalization
Imports System.Resources
Imports System.Windows
' General Information about an assembly is controlled through the following
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.
' Review the values of the assembly attributes
<Assembly: AssemblyTitle("Accounts")>
<Assembly: AssemblyDescription("Account Program")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("Accounts")>
<Assembly: AssemblyCopyRight("Copyright © 2013-4 Andrew Powell")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
'In order to begin building localizable applications, set
'<UICulture>CultureYouAreCodingWith</UICulture> in your .vbproj file
'inside a <PropertyGroup>. For example, if you are using US english
'in your source files, set the <UICulture> to "en-US". Then uncomment the
'NeutralResourceLanguage attribute below. Update the "en-US" in the line
'below to match the UICulture setting in the project file.
'<Assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
'The ThemeInfo attribute describes where any theme specific and generic resource dictionaries can be found.
'1st parameter: where theme specific resource dictionaries are located
'(used if a resource is not found in the page,
' or application resource dictionaries)
'2nd parameter: where the generic resource dictionary is located
'(used if a resource is not found in the page,
'app, and any theme specific resource dictionaries)
<Assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)>
'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("c7920515-ec57-40d4-bccb-8f5b16be77d0")>
' Version information for an assembly consists of the following four values:
'
' Major Version
' Minor Version
' Build Number
' Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
Generic.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:ClassAccounts">
<SolidColorBrush x:Key="CustomWhite" Color="White"/>
<SolidColorBrush x:Key="CustomDarkBlue" Color="#8DA3C1"/>
<SolidColorBrush x:Key="CustomGray" Color="LightGray"/>
<SolidColorBrush x:Key="CustomDarkHighlight" Color="#5082A4"/>
<SolidColorBrush x:Key="CustomLightHighlight" Color="#3399FF"/>
<Color x:Key="CustomLightHighlightC" A="#FF" R="#33" G="#99" B="#FF"/>
<SolidColorBrush x:Key="CustomBackground" Color="#B5CBEF"/>
<Color x:Key="CustomBackgroundC" A="#FF" R="#B5" G="#CB" B="#EF"/>
<SolidColorBrush x:Key="CustomHighlightedControlGlyph" Color="#3C7FB1"/>
<SolidColorBrush x:Key="CustomHighlightedControlBorder" Color="#222"/>
<SolidColorBrush x:Key="CustomPressedControlGlyph" Color="#003366"/>
<SolidColorBrush x:Key="CustomPressedControlBorder" Color="#526C7B"/>
<SolidColorBrush x:Key="CustomPressedControlBackground" Color="#595959"/>
<SolidColorBrush x:Key="CustomGlyph" Color="#444"/>
<SolidColorBrush x:Key="CustomWindowBorder" Color="#395984"/>
<SolidColorBrush x:Key="CustomHeaderLight" Color="#E7EBF7"/>
<Color x:Key="CustomHeaderLightC" A="#FF" R="#E7" G="#EB" B="#F7"/>
<SolidColorBrush x:Key="CustomHeaderDark" Color="#CEE3FF"/>
<Color x:Key="CustomHeaderDarkC" A="#FF" R="#CE" G="#E3" B="#FF"/>
<SolidColorBrush x:Key="CustomControl" Color="Gray"/>
<Style TargetType="{x:Type Button}" x:Key="WindowButtonStyle">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="FontFamily" Value="Webdings"/>
<Setter Property="FontSize" Value="16"/>
<Setter Property="Foreground" Value="{StaticResource CustomControl}"/>
<Setter Property="Margin" Value="0"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="HorizontalAlignment" Value="Center"/>
<Setter Property="VerticalAlignment" Value="Top"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ButtonBase}">
<Border x:Name="Chrome" BorderBrush="{TemplateBinding BorderBrush}" Margin="0" Padding="0" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
<ContentPresenter ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" ContentStringFormat="{TemplateBinding ContentStringFormat}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Foreground" Value="Black"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="LightGray"/>
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="{x:Type local:CustomWindow}" x:Key="{x:Type local:CustomWindow}">
<Setter Property="WindowStyle" Value="None"/>
<Setter Property="ResizeMode" Value="NoResize"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="AllowsTransparency" Value="True"/>
<Setter Property="ShowInTaskbar" Value="True"/>
<Setter Property="Icon" Value="\coins.ico"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:CustomWindow}">
<Border Width="Auto" Height="Auto" Name="windowFrame" BorderBrush="{StaticResource CustomWindowBorder}" BorderThickness="1" CornerRadius="0,20,20,20">
<Border.Background>
<LinearGradientBrush>
<GradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="{StaticResource CustomHeaderLightC}" Offset="0.0"></GradientStop>
<GradientStop Color="{StaticResource CustomHeaderDarkC}" Offset="0.25"></GradientStop>
</GradientStopCollection>
</GradientBrush.GradientStops>
</LinearGradientBrush>
</Border.Background>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" x:Name="tbTitle" Text="{TemplateBinding Title}" FontSize="14" Margin="0" Padding="4"/>
<StackPanel Grid.Column="1" Orientation="Horizontal" Margin="0,5,15,0" HorizontalAlignment="Right" VerticalAlignment="Top" Background="Transparent">
<Button x:Name="RefreshButton" Content="q" Style="{StaticResource WindowButtonStyle}"/>
<Button x:Name="MinimizeButton" Content="0" Style="{StaticResource WindowButtonStyle}"/>
<Button x:Name="OKButton" Content="a" Style="{StaticResource WindowButtonStyle}" IsDefault="True"/>
<Button x:Name="CloseButton" Content="r" Style="{StaticResource WindowButtonStyle}" IsCancel="True"/>
</StackPanel>
</Grid>
<Grid x:Name="grdMain" Grid.Row="1" Background="{StaticResource CustomBackground}">
<AdornerDecorator>
<ContentPresenter/>
</AdornerDecorator>
</Grid>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Horizontal" Margin="15,0,0,0" HorizontalAlignment="Left" VerticalAlignment="Top">
<TextBlock x:Name="tbStatusLeft" FontSize="14" Margin="0,0,0,0" Width="150" Padding="2"/>
<TextBlock x:Name="tbStatusLeft2" FontSize="14" Margin="0,0,0,0" Width="150" Padding="2"/>
<TextBlock x:Name="tbStatusLeft3" FontSize="14" Margin="0,0,0,0" Width="150" Padding="2"/>
</StackPanel>
<Canvas x:Name="canStatusMiddle" Grid.Column="1" ClipToBounds="True">
<TextBlock x:Name="tbStatusMiddle" FontSize="14" Margin="0,0,0,0" Padding="2" TextAlignment="Center"/>
</Canvas>
<StackPanel Grid.Column="2" Orientation="Horizontal" Margin="0,0,15,0" HorizontalAlignment="Right" VerticalAlignment="Top">
<TextBlock x:Name="tbStatusRight3" FontSize="14" Margin="0,0,0,0" Width="150" Padding="2" TextAlignment="Right"/>
<TextBlock x:Name="tbStatusRight2" FontSize="14" Margin="0,0,0,0" Width="150" Padding="2" TextAlignment="Right"/>
<TextBlock x:Name="tbStatusRight" FontSize="14" Margin="0,0,0,0" Width="150" Padding="2" TextAlignment="Right"/>
</StackPanel>
</Grid>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="OKVisibility" Value="False">
<Setter TargetName="OKButton" Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="RefreshVisibility" Value="False">
<Setter TargetName="RefreshButton" Property="Visibility" Value="Collapsed"/>
</Trigger>
<Trigger Property="ExtraStatus" Value="False">
<Setter TargetName="tbStatusLeft2" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="tbStatusLeft3" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="tbStatusRight2" Property="Visibility" Value="Collapsed"/>
<Setter TargetName="tbStatusRight3" Property="Visibility" Value="Collapsed"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Project example - https://www.sendspace.com/file/z4a4tg
Any help greatly appreciated. Andy