unoplatform/uno.toolkit.ui

Uno Toolkit provides a set of higher-level UI Controls designed specifically for multi-platform, responsive applications

UI can be found on our contributing guide to learn about our development process and how to propose bug fixes and improvements

Uno Toolkit provides a set of higher-level UI Controls designed specifically for multi-platform, responsive applications

Uno Toolkit

.

Packages

Package Stable Preview
Uno.Toolkit.UI
Uno.Toolkit.UI.Material
Uno.Toolkit.UI.Cupertino
Uno.Toolkit.WinUI
Uno.Toolkit.WinUI.Material
Uno.Toolkit.WinUI.Cupertino

Getting Started

See the complete documentation for starting with this library. For a larger example and features demo, visit the Uno Gallery repository.

Documentation

All documentation for Uno.Toolkit.UI can be found on our website.

Contributing

Please read our contributing guide to learn about our development process and how to propose bug fixes and improvements. Come visit us on our Discord Channel #uno-platform for help on how to contribute!

Contribute to Uno in your browser using GitPod.io, follow our guide here.

Be also mindful of our Code of Conduct.

Acknowledgments

  • Uno Platform
  • Material Design 3
  • Material Design
  • Cupertino - Human Interface Guideline styling
  • WinUI

License

This project is licensed under the Apache 2.0 license - see the LICENSE file for details.

Contributors

Thanks go to these wonderful people (List made with contrib.rocks):

💖 Thank you.

Issues

Quick list of the latest Issues we found

kazo0

kazo0

kind/bug
Icon For Comments0

On Android and iOS the native bars are rendered which display the platform's native back button icon. For the platforms that use the XAML version of the NavigationBar, we should figure out if we can package an image asset in the library or perhaps use something like a SymbolIcon in the default NavigationBar style for non-mobile platforms. Although, this may not work in Windows as things get messy when trying to use IconElements within a style

Sample App EmptySampleApp.zip

Xiaoy312

Xiaoy312

kind/enhancement
Icon For Comments0

What would you like to be added:

a landing page for the sample app

Why is this needed:

avoiding changing the landing page in every single pr and current landing page "ChipSample" is quite heavy...

Marc-Antoine-Soucy

Marc-Antoine-Soucy

kind/bug
Icon For Comments2

Current behavior

After I open a pdf in an app using Uno.Extensions, all the content on the NavigationBar disappears from all pages.

Expected behavior

The NavigationBar should not be change after opening and closing a file using QLPreviewController

How to reproduce it (as minimally and precisely as possible)

Environment

Nuget Package (in app with bug): "Uno.WinUI" Version="4.5.0-dev.671"

"Uno.WinUI.RemoteControl" Version="4.5.0-dev.671" Condition="'$(Configuration)'=='Debug'" "Uno.UI.Adapter.Microsoft.Extensions.Logging" Version="4.3.6" "Microsoft.Extensions.Logging" Version="6.0.0" "Uno.Extensions.Logging.OSLog" Version="1.4.0"

"Uno.Core" Version="4.0.1" "Uno.Material.WinUI" Version="2.3.0-dev.10" "Uno.Toolkit.WinUI.Material" Version="2.3.0-dev.12" "Uno.Toolkit.WinUI" Version="2.3.0-dev.12" "Uno.SourceGenerationTasks" Version="4.1.0"

"Uno.Extensions.Authentication" Version="2.2.0-dev.196" "Uno.Extensions.Configuration" Version="2.2.0-dev.196"

"Uno.Extensions.Core" Version="2.2.0-dev.196" "Uno.Extensions.Hosting" Version="2.2.0-dev.196" "Uno.Extensions.Hosting.WinUI" Version="2.2.0-dev.196" "Uno.Extensions.Http" Version="2.2.0-dev.196" "Uno.Extensions.Http.Refit" Version="2.2.0-dev.196" "Uno.Extensions.Localization.WinUI" Version="2.2.0-dev.196" "Uno.Extensions.Logging.Serilog" Version="2.2.0-dev.196" "Uno.Extensions.Logging.WinUI" Version="2.2.0-dev.196" "Uno.Extensions.Navigation.Toolkit.WinUI" Version="2.2.0-dev.196" "Uno.Extensions.Navigation.WinUI" Version="2.2.0-dev.196" "Uno.Extensions.Navigation" Version="2.2.0-dev.196" "Uno.Extensions.Serialization" Version="2.2.0-dev.196" "Uno.Extensions.Serialization.Refit" Version="2.2.0-dev.196" "Uno.Extensions.Reactive" Version="2.2.0-dev.196" "Uno.Extensions.Reactive.WinUI" Version="2.2.0-dev.196" Package Version(s):

Affected platform(s):

  • iOS
  • Android
  • WebAssembly
  • WebAssembly renders for Xamarin.Forms
  • Windows
  • Build tasks

Visual Studio:

  • 2017 (version: )
  • 2022 (version: 17.2.6)
  • for Mac (version: )

Relevant plugins:

  • Resharper (version: )

Anything else we need to know?

I tried to reproduce it in this sample, but it doesnt happen. OpenPDFIOSHeader.zip

kazo0

kazo0

kind/enhancement
Icon For Comments0

specs to come, placeholder issue for now.

Provide some sort of recipe for a splash screen that can appear after the default system one is shown.

kazo0

kazo0

kind/enhancement
Icon For Comments13

specs to come, placeholder issue for now.

Basically, we would want some sort of TextBox control that can have some sort of iconbutton that will fire a command when clicked. Picture a Search Box where you can type into it and either Enter or tapping on the magnifying glass icon will fire the command.

Unclear at this point if this should be in Themes or Toolkit

FrozDark

FrozDark

kind/bug
Icon For Comments0

Current behavior

Using DrawerControl in windows throws COMException with "Cannot find a Resource with the Name/Key TrueToVisible". By the name of resource I realized that it's a simple visibility converter. After manually adding it an another COMException with message "The property 'GestureInterceptorMargin' was not found in type 'Uno.Toolkit.UI.DrawerControl'" is thrown Same issue with GTK but allowing an app work without gesture support there https://github.com/unoplatform/uno/issues/9487

Expected behavior

Working control with no issues and exceptions

How to reproduce it (as minimally and precisely as possible)

I could attach repro if needed

Environment

Nuget Package:

Package Version(s):

Affected platform(s):

  • iOS
  • Android
  • WebAssembly
  • WebAssembly renders for Xamarin.Forms
  • Windows
  • Build tasks

Visual Studio:

  • 2017 (version: )
  • 2019 (version: )
  • for Mac (version: )

Relevant plugins:

  • Resharper (version: )

Anything else we need to know?

FrozDark

FrozDark

kind/bug
Icon For Comments4

Current behavior

Navigating to a page with CommandBar crashes the windows app with unhandled exception using one of these resources

Expected behavior

No crash

How to reproduce it (as minimally and precisely as possible)

  1. Create uno project
  2. Add toolkit with material resources
  3. Add resources to the Dictionary
  4. Create page with CommandBar
  5. Start windows and navigate to the page containing CommandBar

Environment

Nuget Package: Uno.WinUI 4.5.0-dev.521 Uno.Toolkit.WinUI 2.3.0-dev.6 Uno.Toolkit.WinUI.Material 2.3.0-dev.6

Package Version(s):

Affected platform(s):

  • iOS
  • Android
  • WebAssembly
  • WebAssembly renders for Xamarin.Forms
  • Windows
  • Build tasks

Visual Studio:

  • 2017 (version: )
  • 2019 (version: )
  • 2022 (version: )
  • for Mac (version: )

Anything else we need to know?

Xiaoy312

Xiaoy312

kind/enhancement
Icon For Comments0

What would you like to be added:

^ and docs + sample?

Why is this needed:

QoL and frequently used recipe

For which Platform:

  • select * from platforms

Anything else we need to know?

Soap-141

Soap-141

kind/bug
Icon For Comments1

Current behavior

There is no option to make the drawer flyout background transparent or it should be by default.

Capture_92

Expected behavior

The drawer flyout background should be transparent by default or have an option to make it transparent.

How to reproduce it (as minimally and precisely as possible)

  1. Download DrawerFlyoutPresenterSample - Copy.zip
  2. Start Solution with VS 2022 Preview 6
  3. Start Project
  4. Click on Test button
  5. Notice drawer flyout is opaque when it should be transparent or have to option to be

Environment

Nuget Package:

  • Uno.Toolkit.WinUI
  • Uno.Toolkit.WinUI.Material
  • Uno.Material.WinUI

Package Version(s):

  • 2.3.0-dev.6
  • 2.3.0-dev.6
  • 2.3.0-dev.4

Affected platform(s):

  • iOS
  • Android
  • WebAssembly
  • WebAssembly renders for Xamarin.Forms
  • Windows
  • Build tasks

Visual Studio:

  • 2017 (version: )
  • 2019 (version: )
  • 2022 (version: 17.2.6)
  • 2022 (version: 17.3.0 Preview 6.0)
  • for Mac (version: )

Relevant plugins:

  • Resharper (version: )

Anything else we need to know?

I used this documentation.

@Xiaoy312 Made a workaround for me (Custom style).

kazo0

kazo0

kind/enhancement
Icon For Comments0

Discussed in https://github.com/unoplatform/uno/discussions/9319

Originally posted by satyampriyam08 July 18, 2022 I created a new Uno platform app and selected Win Ui as one of the platforms. I need a tab menu that is vertically oriented and left-aligned on the page. I used TabBar control from the namespace - xmlns:utu="using:Uno.Toolkit.UI" I am unable to vertically orient and left-align it.

Need support.

takla21

takla21

kind/enhancement
Icon For Comments2

What would you like to be added:

We need a slideshow component for cycling through elements—images or slides of text—like a carousel. Also we need to be able to customize it so items can have its snapping points.

Why is this needed:

We need this on a uno.WinUI project with uno.extensions that I'm currently working on.

For which Platform:

  • iOS
  • Android
  • WebAssembly
  • WebAssembly renders for Xamarin.Forms
  • Windows
  • Build tasks

Anything else we need to know?

kazo0

kazo0

kind/enhancement
Icon For Comments0

We currently need to explicitly initialize the Uno.Material resources (MaterialFonts, MaterialColors, and MaterialResources) and the ToolkitResources and MaterialToolkitResources within the App.xaml. (Same for Uno.Cupertino/Uno.Toolkit.UI.Cupertino)

We should be able to have a single point of initialization for the Material Toolkit that would also initialize the Uno.Material resources and accept the optional Font and ColorPalette override sources.

So the App.xaml can go from this:

to something like this:

kazo0

kazo0

kind/enhancement
Icon For Comments0

Need to test functionality of the Toolkit controls as well as making sure the Cupertino/Material themes are properly applied.

For both UWP and WinUI

Get these tests running on the CI

kazo0

kazo0

kind/enhancement
Icon For Comments0

NavigationBar should have some sort of AppBarButtonStyle property that we can use to forward the style information for the NavigationBar to its Primary/SecondaryCommands. Allowing a PrimaryNavigationBarStyle to set the AppBarButtonStyle to the matching PrimaryAppBarButtonStyle where the Foreground would be OnPrimaryBrush.

This AppBarButtonStyle would need to be passed along to the inner CommandBar on non-mobile platforms, through an Attached Property maybe? As well as applied to the AppBarButtons on mobile platforms so that the renderers set the proper values on the native Toolbar/UINavigationBar items

kazo0

kazo0

kind/enhancement
Icon For Comments0

Modal styles in NavigationBar (MaterialModalNavigationBarStyle and MaterialModalMainCommandStyle) should not exist. This was added originally as a quick workaround for the Uno Figma plugin to generate a different look for the NavigationBar when hosted in a Flyout as a Modal screen for the Uno Commerce app.

With the incoming introduction of NavigationBar style variants (PrimaryNavigationBarStyle, SecondaryNavigationBarStyle, SurfaceNavigationBarStyle, etc.) we should remove this Modal variant as it not longer serves a purpose.

MartinZikmund

MartinZikmund

kind/bug
Icon For Comments0

Current behavior

segmented2

Expected behavior

Selection should be reliable

How to reproduce it (as minimally and precisely as possible)

First time the flyout is opened the selection behaves correctly. The second time it no longer reacts to user input, even though the change is reflected in the data-bound property.

Environment

Nuget Package: 1.3.0

Package Version(s): 1.3.0

Affected platform(s):

All, tested on UWP

MartinZikmund

MartinZikmund

kind/bug
Icon For Comments1

Current behavior

segmented

Expected behavior

Should behave reliably.

How to reproduce it (as minimally and precisely as possible)

See Uno Gallery.

Environment

WASM, but likely all platforms

Nuget Package: 1.3.0

Package Version(s):

Affected platform(s):

All

kazo0

kazo0

kind/enhancement
Icon For Comments0

What would you like to be added:

Now that we are using custom namespace prefixes for mobile: and not_mobile: we can merge the split ResourceDictionaries together

For which Platform:

  • iOS
  • Android
  • WebAssembly
  • WebAssembly renders for Xamarin.Forms
  • Windows
  • Build tasks

Anything else we need to know?

HavenDV

HavenDV

kind/bug
Icon For Comments0

Behavior

It shows error:

How to reproduce it (as minimally and precisely as possible)

Environment

Uno.Material - 1.3.0-dev.4 Uno.Toolkit.UI - 1.3.0-dev.2 Uno.Toolkit.UI.Material - 1.3.0-dev.2

Affected platform(s):

  • UWP
  • iOS
  • Android
  • WebAssembly
  • WebAssembly renders for Xamarin.Forms
  • Windows
  • Build tasks

Visual Studio:

  • 2022 (version: 17.1 preview)
agneszitte-nventive

agneszitte-nventive

kind/enhancement
Icon For Comments0

What would you like to be added:

https://material.io/components/snackbars

Why is this needed:

It's part of the Material Design specs and gives great contextual information

For which Platform:

  • iOS
  • macOS
  • Android
  • WebAssembly
  • Skia
  • Windows
  • Build tasks

Anything else we need to know?

Previous control created in Uno.Themes but removed in order to create a better cross-platform control. https://github.com/unoplatform/Uno.Themes/issues/36 https://github.com/unoplatform/Uno.Themes/pull/68 https://github.com/unoplatform/Uno.Themes/pull/679

Versions

Quick list of the latest released versions

2.3.0 - Sep 14, 2022

Features

Bug Fixes

  • NavigationBar: Avoid null BitmapIcon.UriSource (d1fb179)
  • Remove the extra FAB space above the TabBar (#286) (66a26ed)
  • drawer: manipulation canceled in uno4 & eatten by scrollable/swipable elements (#266) (b98ad87)
  • sample app background not toggling with theme (#271) (792866d)

Library Stats (Sep 15, 2022)

Subscribers: 13
Stars: 39
Forks: 6
Issues: 45

FreshMvvm for Xamarin

FreshMvvm is a super light Mvvm Framework designed specifically for Xamarin

FreshMvvm for Xamarin

PullToRefreshLayout for Xamarin

Update - Officially Deprecated

PullToRefreshLayout for Xamarin

SolTech Xamarin Forms Toolkit

A subclass of the Xamarin Forms Picker control that supports databinding

SolTech Xamarin Forms Toolkit

Xamarin Controls

Cross-platform controls for Xamarin and Xamarin

Xamarin Controls

Animated Xamarin

Let's make use of the Xamarin

Animated Xamarin

BlinkID Xamarin SDK

Enhance your Xamarin cross-platform apps with an AI-driven mobile ID scanning software

BlinkID Xamarin SDK

AndroSpy - Xamarin-C# Android RAT

Yes, It is supporting dns connection like no-ip or duckdns or dynu etc

AndroSpy - Xamarin-C# Android RAT

Xamarin Forms Mvvm Adaptor

ViewModel-First Mvvm framework for Xamarin

Xamarin Forms Mvvm Adaptor

SkiaSharpnado: SkiaSharp components and case studies for Xamarin

If you want real details on this, please see my 2 parts blog post on Sharpnado:

SkiaSharpnado: SkiaSharp components and case studies for Xamarin

Xamarin-Forms-InAnger

Are you a skeptic of the promise of Xamarin

Xamarin-Forms-InAnger

Android Xamarin Chat

An Android (Xamarin) Chat client for the ServiceStack Chat application!

Android Xamarin Chat