Hi Team
I am in the process of migrating our WPF App from using .NET Framework 4.7.2 to .NET Core 3.1.
Migrating From :
- Telerik UI for WPF .NET Framework NoXaml Binaries (Version R3 2019 SP1)
- .NET Framework 4.7.2
Migrating To :
- Telerik UI for WPF .NET Core NoXaml Binaries (Version R3 2019 SP1)
- .NET Core 3.1
All has gone well so far with very little code change, however we have noticed a breaking change between the Telerik .NET Framework assemblies and the Telerik .NET Core assemblies.
We have a custom Dictionary of built-in ChartPalettes with custom display text that is bound to a dropdown box as per the below. Users are able to select a ChartPalette from the dropdown when displaying charts.
/// <summary>
/// Dictionary of <see cref="ChartPalette"/>s with custom display text
/// </summary>
public Dictionary<string, ChartPalette> Palettes { get; private set; }
Palettes = new Dictionary<string, ChartPalette>
{
{"Spring", ChartPalettes.Spring},
{"Summer", ChartPalettes.Summer},
{"Autumn", ChartPalettes.Autumn},
{"Arctic", ChartPalettes.Arctic},
{"Warm", ChartPalettes.Warm},
{"Cold", ChartPalettes.Cold},
{"Crystal", ChartPalettes.Crystal},
{"Flower", ChartPalettes.Flower},
{"Fluent", ChartPalettes.Fluent},
{"Forest", ChartPalettes.Forest},
{"Grayscale", ChartPalettes.Grayscale},
{"Green", ChartPalettes.Green},
{"Ground", ChartPalettes.Ground},
{"Lilac", ChartPalettes.Lilac},
{"Material", ChartPalettes.Material},
{"Office 2013", ChartPalettes.Office2013},
{"Office 2016", ChartPalettes.Office2016},
{"Pastel", ChartPalettes.Pastel},
{"Rainbow", ChartPalettes.Rainbow},
{"Visual Studio 2013", ChartPalettes.VisualStudio2013},
{"Visual Studio 2019", ChartPalettes.VisualStudio2019}, // Does not work in Telerik .NET Core assemblies
{"Windows 8", ChartPalettes.Windows8},
};
The issue is that the VisualStudio2019 ChartPalette (from Telerik.Windows.Controls.ChartView) throws the below exception when using the Telerik .NET Core assemblies. This does not occur when using the Telerik .NET Framework assemblies.
System.IO.IOException: 'Cannot locate resource 'visualization/palettes/resources/visualstudio2019.xml'.'
StackTrace:
at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access)
at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access)
at MS.Internal.IO.Packaging.PackagePartExtensions.GetSeekableStream(PackagePart packPart, FileMode mode, FileAccess access)
at MS.Internal.IO.Packaging.PackagePartExtensions.GetSeekableStream(PackagePart packPart)
at System.Windows.Application.GetResourceStream(Uri uriResource)
at Telerik.Windows.Controls.ChartView.ChartPalettes.LoadPalette(String fileName)
at Telerik.Windows.Controls.ChartView.ChartPalettes.get_VisualStudio2019()
I can confirm we have ALL Telerik .NET Core assemblies being referenced in our project including the Theme assemblies and styles. If we remove the VisualStudio2019 ChartPalette, it works perfectly without any issues.
Please can this be investigated.
I am in the process of migrating our WPF App from using .NET Framework 4.7.2 to .NET Core 3.1.
Migrating From :
- Telerik UI for WPF .NET Framework NoXaml Binaries (Version R3 2019 SP1)
- .NET Framework 4.7.2
Migrating To :
- Telerik UI for WPF .NET Core NoXaml Binaries (Version R3 2019 SP1)
- .NET Core 3.1
All has gone well so far with very little code change, however we have noticed a breaking change between the Telerik .NET Framework assemblies and the Telerik .NET Core assemblies.
We have a custom Dictionary of built-in ChartPalettes with custom display text that is bound to a dropdown box as per the below. Users are able to select a ChartPalette from the dropdown when displaying charts.
/// <summary>
/// Dictionary of <see cref="ChartPalette"/>s with custom display text
/// </summary>
public Dictionary<string, ChartPalette> Palettes { get; private set; }
Palettes = new Dictionary<string, ChartPalette>
{
{"Spring", ChartPalettes.Spring},
{"Summer", ChartPalettes.Summer},
{"Autumn", ChartPalettes.Autumn},
{"Arctic", ChartPalettes.Arctic},
{"Warm", ChartPalettes.Warm},
{"Cold", ChartPalettes.Cold},
{"Crystal", ChartPalettes.Crystal},
{"Flower", ChartPalettes.Flower},
{"Fluent", ChartPalettes.Fluent},
{"Forest", ChartPalettes.Forest},
{"Grayscale", ChartPalettes.Grayscale},
{"Green", ChartPalettes.Green},
{"Ground", ChartPalettes.Ground},
{"Lilac", ChartPalettes.Lilac},
{"Material", ChartPalettes.Material},
{"Office 2013", ChartPalettes.Office2013},
{"Office 2016", ChartPalettes.Office2016},
{"Pastel", ChartPalettes.Pastel},
{"Rainbow", ChartPalettes.Rainbow},
{"Visual Studio 2013", ChartPalettes.VisualStudio2013},
{"Visual Studio 2019", ChartPalettes.VisualStudio2019}, // Does not work in Telerik .NET Core assemblies
{"Windows 8", ChartPalettes.Windows8},
};
The issue is that the VisualStudio2019 ChartPalette (from Telerik.Windows.Controls.ChartView) throws the below exception when using the Telerik .NET Core assemblies. This does not occur when using the Telerik .NET Framework assemblies.
System.IO.IOException: 'Cannot locate resource 'visualization/palettes/resources/visualstudio2019.xml'.'
StackTrace:
at MS.Internal.AppModel.ResourcePart.GetStreamCore(FileMode mode, FileAccess access)
at System.IO.Packaging.PackagePart.GetStream(FileMode mode, FileAccess access)
at MS.Internal.IO.Packaging.PackagePartExtensions.GetSeekableStream(PackagePart packPart, FileMode mode, FileAccess access)
at MS.Internal.IO.Packaging.PackagePartExtensions.GetSeekableStream(PackagePart packPart)
at System.Windows.Application.GetResourceStream(Uri uriResource)
at Telerik.Windows.Controls.ChartView.ChartPalettes.LoadPalette(String fileName)
at Telerik.Windows.Controls.ChartView.ChartPalettes.get_VisualStudio2019()
I can confirm we have ALL Telerik .NET Core assemblies being referenced in our project including the Theme assemblies and styles. If we remove the VisualStudio2019 ChartPalette, it works perfectly without any issues.
Please can this be investigated.