The Uno Platform (Pronounced 'Oono' or 'Ouno') is a Universal Windows Platform Bridge that allows UWP-based code (C# and XAML) to run on iOS, Android, macOS, and WebAssembly
This repository provides simple to-the-point samples for features of the Uno platform.
What is the Uno Platform?
The Uno Platform is a UI Platform for building single-codebase applications for Windows, Web/WebAssembly, iOS, macOS, Android and Linux.
It allows C# and Windows XAML code to run on all target platforms, while allowing you control of every pixel. It comes with support for Fluent, Material and Cupertino design systems out of the box. Uno Platform implements a growing number of the UWP APIs, such as Windows.UI.Xaml, to enable UWP and WinUI applications to run on on all platforms with native performance.
Use the UWP/WinUI tooling from Windows in Visual Studio, such as XAML Hot Reload and C# Edit and Continue, build your application as much as possible on Windows, then validate that your application runs on iOS, Android, macOS and WebAssembly.
Visit our documentation for more details.
Samples
Android Custom Camera
An android specific sample that shows how to start a camera capture intent, and display the result in an Image
control.
Auto Suggest
An implementation of the XAML AutoSuggest
control, showing how to autofill suggestions for user input.
Benchmark
An implementation of the .NET Benchmark Control, performance comparison tool
Camera Capture UI
A cross-platform implementation of the UWP CameraCaptureUI
class that allows the user to capture audio, video, and photos from the device camera.
Control Library
An example of creating a custom control library and calling a control from your shared project.
Dual-Screen
A simple example using the TwoPaneView
control spanned across dual screens (such as Neo or Duo dual-screen devices for example).
EmbeddedResources
An example that demonstrates the use of embedded resources and how to read them from your app.
Note that the Default namespace
property of all projects is the same in order for the embedded resources names to be the same on all platforms.
LocalizationSamples
A collection samples related to localization:
- Localization: A sample showcasing the basics of localization.
Browse source - RuntimeCultureSwitching: An example of changing app language while it is running.
Browse source
Map Control
An implementation of the UWP Maps
control with a custom slider that binds the value of the slider to the ZoomLevel
property of the control.
Native Frame Navigation
An example showcasing how to set up the native frame navigation for iOS and Android, and frame navigation in general for Uno.
Browse source
Native Style Switch
An example of a toggle that allows you to switch between Native UI Controls and UWP UI Controls. The sample includes a checkbox, slider, button, and toggle.
Package Resources
An example that demonstrates the use of package assets and how to read them from your app.
Note that for WebAssembly assets are downloaded on demand, as can be seen in the brower's network tab.
Splash Screen Sample
An example showing how to set the splash/launch screen in Uno.
Browse source
StatusBar Theme Color
An example showing how to adjust the StatusBar
and CommandBar
dynamically based on the current light/dark theme.
Browse source
SkiaSharp Test
An example of the Uno implementation of SkiaSharp creating a basic canvas with text.
TheCatApiClient
An example demonstrating an approach to consuming REST web services in Uno using HttpClient.
ToyCar
A proof of concept of a car animation using the TwoPaneView
control spanned across dual screens (such as Neo or Duo dual-screen devices for example).
Inspiration from Justin Liu's demo app.
SQLite
This is a simple standalone app demonstrating the use of SQLite in an Uno application, including WebAssembly. It uses Erik Sink's SQLitePCLRaw, and Frank Krueger's sqlite-net libraries.
UnoMaterialSample
An example showing how to set up the Uno.Material
library.
Browse source
UnoContoso
This is a project that ported Microsoft's Contoso Enterprise UWP app to Uno Platform Prism.
WCT DataGrid
A dynamic grid view ported from the Windows Community Toolkit that allows for x:Bind.
WCT TabView
Ported from the Windows Community Toolkit, this sample shows an implementation of a TabViewItem
in a shared container.
WebRTC
Demo of the usage of a WebRTC in Uno WebAssembly. This sample establish a direct WebRTC connection between 2 browsers and uses it to send messages between peers.
=======
Visit our documentation for more details.