Skip to content

Commit 137ea26

Browse files
committed
Updated sample
1 parent 071d696 commit 137ea26

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1178
-0
lines changed

RadialMenu/App.xaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<?xml version = "1.0" encoding = "UTF-8" ?>
2+
<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
4+
xmlns:local="clr-namespace:RadialMenu"
5+
x:Class="RadialMenu.App">
6+
<Application.Resources>
7+
<ResourceDictionary>
8+
<ResourceDictionary.MergedDictionaries>
9+
<ResourceDictionary Source="Resources/Styles/Colors.xaml" />
10+
<ResourceDictionary Source="Resources/Styles/Styles.xaml" />
11+
</ResourceDictionary.MergedDictionaries>
12+
</ResourceDictionary>
13+
</Application.Resources>
14+
</Application>

RadialMenu/App.xaml.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace RadialMenu {
2+
public partial class App : Application {
3+
public App() {
4+
InitializeComponent();
5+
6+
MainPage = new AppShell();
7+
}
8+
}
9+
}

RadialMenu/AppShell.xaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="UTF-8" ?>
2+
<Shell
3+
x:Class="RadialMenu.AppShell"
4+
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
5+
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
6+
xmlns:local="clr-namespace:RadialMenu"
7+
Shell.FlyoutBehavior="Disabled"
8+
Title="RadialMenu">
9+
10+
<ShellContent
11+
Title="Home"
12+
ContentTemplate="{DataTemplate local:MainPage}"
13+
Route="MainPage" />
14+
15+
</Shell>

RadialMenu/AppShell.xaml.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
namespace RadialMenu {
2+
public partial class AppShell : Shell {
3+
public AppShell() {
4+
InitializeComponent();
5+
}
6+
}
7+
}

RadialMenu/MainPage.xaml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
3+
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
4+
x:Class="RadialMenu.MainPage"
5+
xmlns:radialMenu ="clr-namespace:Syncfusion.Maui.RadialMenu;assembly=Syncfusion.Maui.RadialMenu"
6+
xmlns:syncfusion="clr-namespace:Syncfusion.Maui.ListView;assembly=Syncfusion.Maui.ListView">
7+
8+
<StackLayout>
9+
<syncfusion:SfListView x:Name="listView"
10+
ItemsSource="{Binding BookInfo}" ItemTapped="listView_ItemTapped_1"
11+
ItemSize="250">
12+
13+
<syncfusion:SfListView.ItemTemplate>
14+
<DataTemplate>
15+
<Grid x:Name="main">
16+
<Grid.RowDefinitions>
17+
<RowDefinition Height="0.4*" />
18+
<RowDefinition Height="0.6*" />
19+
</Grid.RowDefinitions>
20+
<Label Text="{Binding BookName}" FontAttributes="Bold" TextColor="Teal" FontSize="Small" />
21+
<Label Grid.Row="1" Text="{Binding BookDescription}" TextColor="Teal" FontSize="15"/>
22+
</Grid>
23+
</DataTemplate>
24+
</syncfusion:SfListView.ItemTemplate>
25+
</syncfusion:SfListView>
26+
27+
28+
<radialMenu:SfRadialMenu IsOpen="False"
29+
IsVisible="False"
30+
Closing="radial_Menu_Closing_1"
31+
HeightRequest="250"
32+
WidthRequest="220"
33+
x:Name="radial_Menu"
34+
CenterButtonText="&#xe710;"
35+
CenterButtonFontFamily="MauiMaterialAssets" >
36+
<radialMenu:SfRadialMenu.Items>
37+
<radialMenu:SfRadialMenuItem Text="&#xe72e;" FontFamily="MauiMaterialAssets">
38+
<radialMenu:SfRadialMenuItem.Items>
39+
<radialMenu:SfRadialMenuItem Text="&#xe744;"
40+
FontFamily="MauiMaterialAssets" />
41+
<radialMenu:SfRadialMenuItem Text="&#xe745;"
42+
FontFamily="MauiMaterialAssets" />
43+
<radialMenu:SfRadialMenuItem Text="&#xe73b;"
44+
FontFamily="MauiMaterialAssets" />
45+
<radialMenu:SfRadialMenuItem Text="&#xe762;"
46+
FontFamily="MauiMaterialAssets" />
47+
</radialMenu:SfRadialMenuItem.Items>
48+
</radialMenu:SfRadialMenuItem>
49+
<radialMenu:SfRadialMenuItem Text="&#xe72e;"
50+
FontFamily="MauiMaterialAssets">
51+
<radialMenu:SfRadialMenuItem.Items>
52+
<radialMenu:SfRadialMenuItem Text="&#xe744;"
53+
FontFamily="MauiMaterialAssets" />
54+
<radialMenu:SfRadialMenuItem Text="&#xe745;"
55+
FontFamily="MauiMaterialAssets" />
56+
<radialMenu:SfRadialMenuItem Text="&#xe746;"
57+
FontFamily="MauiMaterialAssets" />
58+
<radialMenu:SfRadialMenuItem Text="&#xe762;"
59+
FontFamily="MauiMaterialAssets" />
60+
</radialMenu:SfRadialMenuItem.Items>
61+
</radialMenu:SfRadialMenuItem>
62+
<radialMenu:SfRadialMenuItem Text="&#xe72e;"
63+
FontFamily="MauiMaterialAssets">
64+
<radialMenu:SfRadialMenuItem.Items>
65+
<radialMenu:SfRadialMenuItem Text="&#xe744;"
66+
FontFamily="MauiMaterialAssets" />
67+
<radialMenu:SfRadialMenuItem Text="&#xe745;"
68+
FontFamily="MauiMaterialAssets" />
69+
<radialMenu:SfRadialMenuItem Text="&#xe746;"
70+
FontFamily="MauiMaterialAssets" />
71+
</radialMenu:SfRadialMenuItem.Items>
72+
</radialMenu:SfRadialMenuItem>
73+
<radialMenu:SfRadialMenuItem Text="&#xe710;" FontFamily="MauiMaterialAssets">
74+
<radialMenu:SfRadialMenuItem.Items>
75+
<radialMenu:SfRadialMenuItem FontSize="16" Text="&#xe744;" FontFamily="MauiMaterialAssets" />
76+
<radialMenu:SfRadialMenuItem FontSize="18" Text="&#xe745;" FontFamily="MauiMaterialAssets" />
77+
<radialMenu:SfRadialMenuItem FontSize="20" Text="&#xe746;" FontFamily="MauiMaterialAssets" />
78+
</radialMenu:SfRadialMenuItem.Items>
79+
</radialMenu:SfRadialMenuItem>
80+
<radialMenu:SfRadialMenuItem Text="&#xe710;" FontFamily="MauiMaterialAssets">
81+
<radialMenu:SfRadialMenuItem.Items>
82+
<radialMenu:SfRadialMenuItem Text="&#xe744;" FontFamily="MauiMaterialAssets" />
83+
<radialMenu:SfRadialMenuItem Text="&#xe745;" FontFamily="MauiMaterialAssets" />
84+
<radialMenu:SfRadialMenuItem Text="&#xe746;" FontFamily="MauiMaterialAssets" />
85+
</radialMenu:SfRadialMenuItem.Items>
86+
</radialMenu:SfRadialMenuItem>
87+
</radialMenu:SfRadialMenu.Items>
88+
</radialMenu:SfRadialMenu>
89+
</StackLayout>
90+
91+
</ContentPage>

RadialMenu/MainPage.xaml.cs

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
using System.Collections.ObjectModel;
2+
using System.ComponentModel;
3+
using System.Windows.Input;
4+
5+
namespace RadialMenu
6+
{
7+
public partial class MainPage : ContentPage
8+
{
9+
public MainPage()
10+
{
11+
InitializeComponent();
12+
this.BindingContext = new BookInfoRepository();
13+
14+
}
15+
private void listView_ItemTapped_1(object sender, Syncfusion.Maui.ListView.ItemTappedEventArgs e)
16+
{
17+
radial_Menu.TranslationX = e.Position.X - (radial_Menu.Width);
18+
radial_Menu.TranslationY = e.Position.Y - (radial_Menu.Height);
19+
radial_Menu.IsOpen = true;
20+
radial_Menu.IsVisible = true;
21+
}
22+
23+
private void radial_Menu_Closing_1(object sender, Syncfusion.Maui.RadialMenu.ClosingEventArgs e) {
24+
radial_Menu.IsVisible = false;
25+
}
26+
}
27+
28+
public class BookInfo : INotifyPropertyChanged {
29+
private string bookName;
30+
private string bookDesc;
31+
32+
public string BookName {
33+
get { return bookName; }
34+
set {
35+
bookName = value;
36+
OnPropertyChanged("BookName");
37+
}
38+
}
39+
40+
public string BookDescription {
41+
get { return bookDesc; }
42+
set {
43+
bookDesc = value;
44+
OnPropertyChanged("BookDescription");
45+
}
46+
}
47+
48+
public event PropertyChangedEventHandler PropertyChanged;
49+
50+
public void OnPropertyChanged(string name) {
51+
if (this.PropertyChanged != null)
52+
this.PropertyChanged(this, new PropertyChangedEventArgs(name));
53+
}
54+
}
55+
56+
public class BookInfoRepository {
57+
private ObservableCollection<BookInfo> bookInfo;
58+
59+
public ObservableCollection<BookInfo> BookInfo {
60+
get { return bookInfo; }
61+
set { this.bookInfo = value; }
62+
}
63+
64+
public BookInfoRepository() {
65+
GenerateBookInfo();
66+
}
67+
68+
internal void GenerateBookInfo() {
69+
bookInfo = new ObservableCollection<BookInfo>();
70+
bookInfo.Add(new BookInfo() { BookName = "Object-Oriented Programming in C#", BookDescription = "Object-oriented programming is a programming paradigm based on the concept of objects" });
71+
bookInfo.Add(new BookInfo() { BookName = "C# Code Contracts", BookDescription = "Code Contracts provide a way to convey code assumptions" });
72+
bookInfo.Add(new BookInfo() { BookName = "Machine Learning Using C#", BookDescription = "You will learn several different approaches to applying machine learning" });
73+
bookInfo.Add(new BookInfo() { BookName = "Neural Networks Using C#", BookDescription = "Neural networks are an exciting field of software development" });
74+
bookInfo.Add(new BookInfo() { BookName = "Visual Studio Code", BookDescription = "It is a powerful tool for editing code and serves for end-to-end programming" });
75+
bookInfo.Add(new BookInfo() { BookName = "Android Programming", BookDescription = "It provides a useful overview of the Android application life cycle" });
76+
bookInfo.Add(new BookInfo() { BookName = "iOS Succinctly", BookDescription = "It is for developers looking to step into frightening world of iPhone" });
77+
bookInfo.Add(new BookInfo() { BookName = "Visual Studio 2015", BookDescription = "The new version of the widely-used integrated development environment" });
78+
bookInfo.Add(new BookInfo() { BookName = "Xamarin.Forms", BookDescription = "It creates mappings from its C# classes and controls directly" });
79+
bookInfo.Add(new BookInfo() { BookName = "Windows Store Apps", BookDescription = "Windows Store apps present a radical shift in Windows development" });
80+
}
81+
}
82+
}
83+
84+
85+
86+
87+
88+

RadialMenu/MauiProgram.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using Microsoft.Extensions.Logging;
2+
using Syncfusion.Maui.Core.Hosting;
3+
4+
namespace RadialMenu {
5+
public static class MauiProgram {
6+
public static MauiApp CreateMauiApp() {
7+
var builder = MauiApp.CreateBuilder();
8+
builder
9+
.UseMauiApp<App>()
10+
.ConfigureSyncfusionCore()
11+
.ConfigureFonts(fonts => {
12+
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
13+
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
14+
fonts.AddFont("Maui Material Assets.ttf", "MauiMaterialAssets");
15+
});
16+
17+
#if DEBUG
18+
builder.Logging.AddDebug();
19+
#endif
20+
21+
return builder.Build();
22+
}
23+
}
24+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
3+
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true"></application>
4+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
5+
<uses-permission android:name="android.permission.INTERNET" />
6+
</manifest>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using Android.App;
2+
using Android.Content.PM;
3+
using Android.OS;
4+
5+
namespace RadialMenu {
6+
[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density)]
7+
public class MainActivity : MauiAppCompatActivity {
8+
}
9+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
using Android.App;
2+
using Android.Runtime;
3+
4+
namespace RadialMenu {
5+
[Application]
6+
public class MainApplication : MauiApplication {
7+
public MainApplication(IntPtr handle, JniHandleOwnership ownership)
8+
: base(handle, ownership) {
9+
}
10+
11+
protected override MauiApp CreateMauiApp() => MauiProgram.CreateMauiApp();
12+
}
13+
}

0 commit comments

Comments
 (0)