Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

May Update for WPF on .NET Core 3.0 #738

grubioe opened this issue May 23, 2019 · 4 comments

May Update for WPF on .NET Core 3.0 #738

grubioe opened this issue May 23, 2019 · 4 comments


Copy link

@grubioe grubioe commented May 23, 2019

May Update for WPF on .NET Core 3.0

In last month’s update, we shared details related to onboarding to the Arcade SDK build system and what had kept the team so busy since December. This month, we have exciting news to share... the team just open sourced 15 additional assemblies! With this, most of the managed binaries have been open sourced including WindowsBase, PresentationFramework & PresentationCore.

Following are the assemblies recently open sourced, note that we have updated the WPF roadmap to reflect these changes:

  • WindowsBase
  • PresentationCore
  • PresentationFramework
  • DirectWriteForwarder
  • ReachFramework
  • System.Windows.Input.Manipulations
  • UI Automation assemblies
    • UIsAutomationClient
    • UIAutomationClientSideProviders
    • UIAutomationProvider
    • UIAutomationType
  • WPF Extensions
    • PresentationFramework-SystemCore
    • PresentationFramework-SystemData
    • PresentationFramework-SystemDrawing
    • PresentationFramework-SystemXml
    • PresentationFramework-SystemXmlLinq

To open source each binary it requires that the team takes a methodical approach given that the code base has been around for 10+ years. The following steps must be taken for open sourcing each binary:

  • Cleanup for open sourcing: We run tools to remove all references to employee aliases, employee names, remove of internal bug databases and ID’s.
  • Licensing Updates: For each assembly we run checks to validate that all source code has the proper .NET foundation license.

As we approach .NET Core 3 General Availability (GA) we will be working on open sourcing the remaining assemblies on the roadmap and on squashing issues (like #37) that have been identified as candidates for .NET Core 3.

Given that .NET Core 3 GA is planned for September we want to be super focused... we have updated our contribution guidelines and added additional guidance related to acceptance criteria for Pull Requests prior to the .NET Core 3 GA. Don't get us wrong, we love community contributions but for now we want to ensure that the 3.0 release rocks!

Thank you for your contributions and engagement to date. If you have questions, suggestions, or concerns, please let us know.

@grubioe grubioe added this to the 3.0 milestone May 23, 2019
@msftbot msftbot bot added this to Needs Triage in Triage Board May 23, 2019
@grubioe grubioe pinned this issue May 23, 2019
@grubioe grubioe removed this from Needs Triage in Triage Board May 23, 2019

This comment has been minimized.

Copy link

@thomasclaudiushuber thomasclaudiushuber commented May 24, 2019

Congrats to the team for reaching this important milestone! 💪🚀

And thanks again for the transparency and this May update. Highly appreciated! ❤️

@grubioe grubioe self-assigned this May 24, 2019
@msftbot msftbot bot added this to Needs Triage in Triage Board May 24, 2019
@grubioe grubioe removed this from the 3.0 milestone May 30, 2019
@grubioe grubioe added this to the 3.0 milestone Jun 13, 2019

This comment has been minimized.

Copy link

@Noemata Noemata commented Jun 13, 2019

This is a big WOW!


This comment has been minimized.

Copy link

@vogeljo vogeljo commented Jun 19, 2019

Hi guys,

thanks for releasing the new preview! However, there now is an issue with the TextBox on WPF on some systems. See this Stackoverflow thread for details.

I also observed this on a german machine (BILDAUF is german for PGUP key), suggesting it's some weird Enum string parsing and translation bug. See the stack trace for details (i got ArgumentException instead of DispatcherUnhandledException with identical error message, no clue why):

Ausnahme ausgelöst: "System.ArgumentException" in PresentationFramework.dll: 'Requested value 'BILDAUF' was not found.'
   bei System.Enum.TryParseByName(RuntimeType enumType, String originalValueString, ReadOnlySpan`1 value, Boolean ignoreCase, Boolean throwOnFailure, UInt64& result)
   bei System.Enum.TryParseInt32Enum(RuntimeType enumType, String originalValueString, ReadOnlySpan`1 value, Int32 minInclusive, Int32 maxInclusive, Boolean ignoreCase, Boolean throwOnFailure, TypeCode type, Int32& result)
   bei System.Enum.TryParse(Type enumType, String value, Boolean ignoreCase, Boolean throwOnFailure, Object& result)
   bei System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
   bei System.Windows.Input.KeyConverter.GetKey(String keyToken, CultureInfo culture)
   bei System.Windows.Input.KeyConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object source)
   bei System.Windows.Input.KeyGestureConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object source)
   bei System.ComponentModel.TypeConverter.ConvertFromInvariantString(String text)
   bei System.Windows.Input.KeyGesture.CreateFromResourceStrings(String keyGestureToken, String keyDisplayString)
   bei System.Windows.Input.KeyGesture.AddGesturesFromResourceStrings(String keyGestures, String displayStrings, InputGestureCollection gestures)
   bei System.Windows.Input.ComponentCommands.LoadDefaultGestureFromResource(Byte commandId)
   bei System.Windows.Input.RoutedCommand.GetInputGestures()
   bei System.Windows.Input.RoutedCommand.get_InputGesturesInternal()
   bei System.Windows.Input.CommandBindingCollection.FindMatch(Object targetElement, InputEventArgs inputEventArgs)
   bei System.Windows.Input.CommandManager.TranslateInput(IInputElement targetElement, InputEventArgs inputEventArgs)
   bei System.Windows.UIElement.OnMouseDownThunk(Object sender, MouseButtonEventArgs e)
   bei System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
   bei System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   bei System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   bei System.Windows.RouteItem.InvokeHandler(RoutedEventArgs routedEventArgs)
   bei System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   bei System.Windows.EventRoute.InvokeHandlers(Object source, RoutedEventArgs args)
   bei System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   bei System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   bei System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
   bei System.Windows.Input.InputManager.ProcessStagingArea()
   bei System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
   bei System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   bei System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   bei System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   bei System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   bei MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   bei MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   bei System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   bei System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   bei System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   bei MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   bei MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   bei System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   bei System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   bei System.Windows.Window.ShowHelper(Object booleanBox)
   bei System.Windows.Window.Show()
   bei System.Windows.Window.ShowDialog()

Best regards


This comment has been minimized.

Copy link

@weltkante weltkante commented Jun 19, 2019

@vogeljo this mislocalization has already been reported a few times and is fixed in #919 which so far is only available in nightly builds. If you don't want to consume those you can work around by setting your resource culture to english during startup (CultureInfo.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Triage Board
Needs Triage
5 participants
You can’t perform that action at this time.