Limitations and workarounds

XAML-related limitations:

  • Grid.RowSpan and Grid.ColumnSpan are not supported. (Coming Soon!)
    Workaround: nest a Grid inside another Grid to achieve a similar result.
  • ListBox controls do not have built-in scroll bars.
    Workaround: Place the ListBox inside a ScrollViewer control. Tip: for smooth scrolling on mobile devices, set VerticalScrollBarVisibility to Visible rather than Auto.
  • CenterX and CenterY are not supported in render transforms.
    Workaround: set the RenderTransformOrigin property on the element itself. Tip: to achieve the same transform without using CenterX and CenterY, consider experimenting with Microsoft Blend on a separate WPF or UWP project. In fact, Microsoft Blend by default also does not use the CenterX and CenterY properties for render transforms.
  • Triggers are not supported.
    Workaround: instead of Triggers, use the VisualStateManager class in conjunction with Storyboards. Tip: consider experimenting with Microsoft Blend on a separate UWP or Silverlight project, which also do not support triggers.
  • TransformGroup is not supported.
    Workaround: instead of a TransformGroup, you may use a CompositeTransform, which lets you apply multiple transforms in the following order: Scale, Skew, Rotate, Translate.
  • ImageBrush is not supported.
    Workaround: use an <Image> control instead. If you need to place the <Image> control behind another control, you can do so by placing both the <Image> control and the said control inside a surrounding <Grid> control. Here is an example of use of the Image control: <Image Source="/AssemblyName;component/FolderName/ImageFileName.jpg" Width="320" Height="240"/>
  • StrokeStartLineCap and StrokeEndLineCap must have the same value for a given element.
    Workaround: set both properties to the same value, or remove those properties altogether. Note: this is due to the fact that HTML5 does not support a different cap for the Start and the End of a line. The default value of those properties is: Flat.
  • It is recommended that you explicitly set a fixed Width and Height (in pixels) for ChildWindows, otherwise they may take the size of the whole page.
    For example, you can set it like this: <ChildWindow Width="400" Height="400"> ...
  • Features that are not YET directly supported include:
    (Note: an HTML-based workaround may be found for many of the features listed here)
    UseSystemFocusVisuals, IsFocusEngagementEnabled, IsTabStop, TabIndex, ManipulationMode, ManipulationDelta, ManipulationStarted, ManipulationCompleted, implicit styles, implicit data templates, Generic.xaml, ZIndex, RadiuxX, RadiusY, Frame, Slider, TreeView, RepeatButton, RTF, ViewBox, RepeatButton, StrokeDashCap, RadialGradientBrush, XAMLReader.Load.

    Please also refer to the page "List of supported .NET types and methods"..

C# limitations:

  • You need to rename HashSet<> into HashSet2<>
  • The "Decimal" class is not yet supported. Please replace the type "decimal" with another type such as "double".
  • Read the list of supported .NET types and methods.

Misc limitations:

  • Your CSHTML5 project configuration must be "Debug", not "Release".

WCF and HTTP-related limitations:

Click here to read about WCF and HTTP-related limitations.

XML Serialization-related limitations:

Click here to read about XML serializer limitations.

Mscorlib limitations:

Only a subset of the Mscorlib methods are currently supported. You can see the list of supported types here, and read the guide on how to implement mscorlib methods.

Visual Studio integration limitations and known issues:

  • The XAML Editor is unable to preview custom types and user controls.
    Only native XAML types can be previewed in the XAML Editor at the moment.
  • You may sometimes see misleading XAML-related errors at design-time.
    Workaround: to only see the "real" error, close all the XAML Editor tabs, and recompile your project by clicking the "Build Solution" or "Build Project" commands.
  • Ctrl+F will open the "Find in Files" dialog instead of the "Quick Find" pane.
  • Clicking "View Designer" from code-behind will open the WPF XAML editor instead of the CSHTML5 XAML editor.
    Workaround: open the XAML file by double-clicking on it in the Solution Explorer. This will open the correct editor.
  • Double-clicking an error in the Errors pane sometimes does not jump to the correct XAML line.
    Workaround: if the XAML file concerned by the error is already being edited in a tab, closing the tab and double-clicking again on the error sometimes fixes this issue.


Related Topics