dotnet / wpf

WPF is a .NET Core UI framework for building Windows desktop applications.
MIT License
7.08k stars 1.17k forks source link

Document new API's #1172

Closed vatsan-madhavan closed 5 years ago

vatsan-madhavan commented 5 years ago

In .NET Core 2.0, new API's any that are currently missing documentation would need to be documented.

We will rely on the docs team (/cc @mairaw) to identify the gaps - this is not intended as a task to fill every possible documentation gap.

So far, these are the outstanding API's WPF needs to document:

Namespace Class Name
System.Printing PrintJobInfoCollection System.Collections.IEnumerable.GetEnumerator
System.Printing PrintQueueCollection System.Collections.IEnumerable.GetEnumerator
System.Windows FrameworkTemplate System.Windows.ISealable.CanSeal
System.Windows FrameworkTemplate System.Windows.ISealable.IsSealed
System.Windows FrameworkTemplate System.Windows.ISealable.Seal
System.Windows FreezableCollection.Enumerator FreezableCollection.Enumerator
System.Windows Style System.Windows.ISealable.CanSeal
System.Windows Style System.Windows.ISealable.IsSealed
System.Windows Style System.Windows.ISealable.Seal
System.Windows.Automation AndCondition GetConditions
System.Windows.Automation AutomationProperty LookupById
System.Windows.Automation AutomationTextAttribute LookupById
System.Windows.Automation ClientSideProviderFactoryCallback ClientSideProviderFactoryCallback
System.Windows.Automation ControlType LookupById
System.Windows.Controls InkCanvas OnCreateAutomationPeer
System.Windows.Controls InkPresenter OnCreateAutomationPeer
System.Windows.Controls ScrollViewer ArrangeOverride
System.Windows.Documents PresentationUIStyleResources PresentationUIStyleResources
System.Windows.Input StylusButton ToString
System.Windows.Input StylusPointCollection ToHiMetricArray
System.Windows.Input TabletDeviceCollection System.Collections.IEnumerable.GetEnumerator
System.Windows.Media PenDashCap Flat
System.Windows.Media PenDashCap PenDashCap
System.Windows.Media PenDashCap Round
System.Windows.Media PenDashCap Triangle
System.Windows.Media.Animation IAnimation GetCurrentValue
System.Windows.Media.Animation IAnimation IAnimation
System.Windows.Xps XpsDocumentWriter raise_WritingCancelled
System.Windows.Xps XpsDocumentWriter raise_WritingCompleted
System.Windows.Xps XpsDocumentWriter raise_WritingPrintTicketRequired
System.Windows.Xps XpsDocumentWriter raise_WritingProgressChanged
System.Windows.Xps.Packaging IXpsFixedDocumentSequenceReader GetFixedDocument
System.Xaml.Permissions XamlLoadPermission Equals
System.Xaml.Permissions XamlLoadPermission GetHashCode

@ryalanms & @fabiant3, assigning to you since you are already working with the docs team. /cc @vivmishra

vatsan-madhavan commented 5 years ago

@fabiant3, @ryalanms, Is the documentation work progressing along well? I believe @carlossanlop mentioned that this should be completed and merged before Aug 16th.

carlossanlop commented 5 years ago

Correct. By August 16th everything needs to be merged.

carlossanlop commented 5 years ago

Tomorrow is the endline to get them documented so they get included in the IntelliSense package we will ship. What's the status of this?

ryalanms commented 5 years ago

This API is already documented in 4.8:

P:System.Windows.Navigation.BaseUriHelper.BaseUri https://docs.microsoft.com/en-us/dotnet/api/system.windows.navigation.baseurihelper?view=netframework-4.8

Only IAnimation and PenDashCap need documentation. These others are not part of WPF or have been removed. (Note that these are not new APIs. They also exist in .NET Framework.)

Namespace Type DocId Class
System.Windows.Media Field F:System.Windows.Media.PenDashCap.Flat PenDashCap
System.Windows.Media Enum T:System.Windows.Media.PenDashCap PenDashCap
System.Windows.Media Field F:System.Windows.Media.PenDashCap.Round PenDashCap
System.Windows.Media Field F:System.Windows.Media.PenDashCap.Triangle PenDashCap
System.Windows.Media.Animation Method M:System.Windows.Media.Animation.IAnimation.GetCurrentValue(System.Object,System.Object,System.Windows.Media.Animation.AnimationClock) IAnimation
System.Windows.Media.Animation Interface T:System.Windows.Media.Animation.IAnimation IAnimation
System.Windows.Navigation AttachedProperty P:System.Windows.Navigation.BaseUriHelper.BaseUri BaseUriHelper
System.Xaml.Permissions Method M:System.Xaml.Permissions.XamlLoadPermission.Equals(System.Object) XamlLoadPermission
System.Xaml.Permissions Method M:System.Xaml.Permissions.XamlLoadPermission.GetHashCode XamlLoadPermission
Windows.UI.Xaml Constructor M:Windows.UI.Xaml.LayoutCycleException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) LayoutCycleException
Windows.UI.Xaml.Automation Constructor M:Windows.UI.Xaml.Automation.ElementNotAvailableException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext) ElementNotAvailableException
mairaw commented 5 years ago

Also, just to be clear, from a compliance perspective, APIs like this would not be considered documented because they're missing the return value. So you should probably review all hits again to make sure that summary, parameters and description are all documented.

https://docs.microsoft.com/en-us/dotnet/api/system.windows.automation.andcondition.getconditions?view=netframework-4.8#System_Windows_Automation_AndCondition_GetConditions

mairaw commented 5 years ago

I'll also going to file a bug for our reflection tool because it seems it's listing some EIIs that are from internal interfaces, so there's no way external customers could cast those. For example: https://docs.microsoft.com/en-us/dotnet/api/system.windows.frameworktemplate.system-windows-isealable-seal?view=netframework-4.8

MSDN wouldn't show those: https://msdn.microsoft.com/en-us/library/system.windows.frameworktemplate?toc=xxx#Explicit%20Interface%20Implementations