SlotView.Maui
0.0.3
dotnet add package SlotView.Maui --version 0.0.3
NuGet\Install-Package SlotView.Maui -Version 0.0.3
<PackageReference Include="SlotView.Maui" Version="0.0.3" />
paket add SlotView.Maui --version 0.0.3
#r "nuget: SlotView.Maui, 0.0.3"
// Install SlotView.Maui as a Cake Addin #addin nuget:?package=SlotView.Maui&version=0.0.3 // Install SlotView.Maui as a Cake Tool #tool nuget:?package=SlotView.Maui&version=0.0.3
<img src="https://raw.githubusercontent.com/nor0x/SlotView/main/Art/icon.png" width="320px" />
SlotView.Maui 🎰
a view that can animate images like a slot machine reel. Powered by Maui.Graphics and highly customizable.
read more about the development here in my blog http://johnnys.news/2023/04/Hello-SlotView-Maui
https://user-images.githubusercontent.com/3210391/235326369-8bedf844-841e-4485-935a-0c94b0cef98c.mp4
Installation
Add NuGet package to your project:
dotnet add package SlotView.Maui
or as PackageReference
<PackageReference Include="SlotView.Maui" Version="0.0.1" />
Usage
xmlns:sv="clr-namespace:SlotView.Maui;assembly=SlotView.Maui"
...
<sv:SlotView
x:Name="mySlotView"
Speed="10"
Drag="0.1"
StopIndex="5"
VisibleCount="3">
<sv:SlotView.Images>
<x:Array Type="{x:Type x:String}">
<x:String>myimg0.png</x:String>
<x:String>https://foo.bar/myimg1.png</x:String>
<x:String>myimg2.png</x:String>
<x:String>https://foo.bar/myimg2.png</x:String>
</x:Array>
</sv:SlotView.Images>
</sv:SlotView>
or in code behind
var mySlotView = new SlotView
{
Speed = 10,
Drag = 0.1f,
StopIndex = 5,
VisibleCount = 3,
Images = new string[]
{
"myimg0.png",
"https://foo.bar/myimg1.png",
"myimg2.png",
"https://foo.bar/myimg2.png"
}
};
SlotView Class Documentation
Properties
BackgroundColor
property
Type: Color
Description: Gets or sets the background color of the control.
Images
property
Type: string[]
Description: Gets or sets the list of image paths to be displayed in the control.
Speed
property
Type: float
Description: Gets or sets the speed of the spinning animation.
MinimumSpeed
property
Type: float
Description: Gets or sets the minimum speed that the spinning animation can reach.
Drag
property
Type: float
Description: Gets or sets the drag of the spinning animation.
DragThreshold
property
Type: int
Description: Gets or sets the drag threshold of the spinning animation.
VisibleCount
property
Type: int
Description: Gets or sets the number of images to be displayed at once.
Delay
property
Type: float
Description: Gets or sets the delay before the spinning animation starts.
Duration
property
Type: float
Description: Gets or sets the duration of the spinning animation.
StopIndex
property
Type: int
Description: Gets or sets the index of the image to stop the spinning animation at.
IsSpinning
property
Type: bool
Description: Gets or sets a value indicating whether the spinning animation is currently running.
Direction
property
Type: SlotDirection
Description: Gets or sets the direction of the spinning animation.
Events
ImagesLoaded
event
Type: EventHandler
Description: Occurs when the list of images has been loaded and is ready for display.
Started
event
Type: EventHandler
Description: Occurs when the spinning animation has started.
Paused
event
Type: EventHandler
Description: Occurs when the spinning animation has been paused.
Finished
event
Type: EventHandler
Description: Occurs when the spinning animation has finished.
Demo
You can find a demo project with multiple scenarious and customizations in the SlotView.Maui.Demo folder of this repository.
<img src="https://raw.githubusercontent.com/nor0x/SlotView/main/Art/demo1.png" width="500px" /> <img src="https://raw.githubusercontent.com/nor0x/SlotView/main/Art/demo2.png" width="500px" /> <img src="https://raw.githubusercontent.com/nor0x/SlotView/main/Art/demo3.png" width="500px" />
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-android34.0 is compatible. net8.0-browser was computed. net8.0-ios was computed. net8.0-ios17.5 is compatible. net8.0-maccatalyst was computed. net8.0-maccatalyst17.5 is compatible. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net8.0-windows10.0.19041 is compatible. |
-
net8.0
- Microsoft.Extensions.Logging.Debug (>= 8.0.0)
- Microsoft.Maui.Controls (>= 8.0.80)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.80)
-
net8.0-android34.0
- Microsoft.Extensions.Logging.Debug (>= 8.0.0)
- Microsoft.Maui.Controls (>= 8.0.80)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.80)
-
net8.0-ios17.5
- Microsoft.Extensions.Logging.Debug (>= 8.0.0)
- Microsoft.Maui.Controls (>= 8.0.80)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.80)
-
net8.0-maccatalyst17.5
- Microsoft.Extensions.Logging.Debug (>= 8.0.0)
- Microsoft.Maui.Controls (>= 8.0.80)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.80)
-
net8.0-windows10.0.19041
- Microsoft.Extensions.Logging.Debug (>= 8.0.0)
- Microsoft.Maui.Controls (>= 8.0.80)
- Microsoft.Maui.Controls.Compatibility (>= 8.0.80)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.