-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathMainPageCodeDev.cs
128 lines (103 loc) · 3.66 KB
/
MainPageCodeDev.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
using AppoMobi.Maui.DrawnUi.Demo.Views.Controls;
using Sandbox.Views;
using Canvas = DrawnUi.Maui.Views.Canvas;
namespace Sandbox
{
public class MainPageCodeDev : BasePage, IDisposable
{
Canvas Canvas;
public void Dispose()
{
this.Content = null;
Canvas?.Dispose();
}
public class MyDataTemplateSelector : DataTemplateSelector
{
protected override DataTemplate? OnSelectTemplate(object item, BindableObject container)
{
return new DataTemplate(() =>
{
return new SkiaLabel()
{
HeightRequest = 32,
BackgroundColor = Colors.Red,
HorizontalOptions = LayoutOptions.Fill
};
});
}
}
public MainPageCodeDev()
{
#if DEBUG
HotReloadService.UpdateApplicationEvent += ReloadUI;
#endif
Build();
}
private int _reloads;
void Build()
{
var itemsSource = Enumerable.Range(1, 12).Select(x => $"{x * 10} m").ToList();
var selector = new MyDataTemplateSelector();
Canvas?.Dispose();
Canvas = new Canvas()
{
Gestures = GesturesMode.Lock,
HardwareAcceleration = HardwareAccelerationMode.Enabled,
VerticalOptions = LayoutOptions.Fill,
HorizontalOptions = LayoutOptions.Fill,
BackgroundColor = Colors.Gray,
//Content = new SkiaLayout()
//{
// Type = LayoutType.Column,
// Spacing = 8,
// BackgroundColor = Colors.White,
// HorizontalOptions = LayoutOptions.Fill,
// ItemsSource = itemsSource,
// ItemTemplate = selector
//}
Content =
new SkiaLayout()
{
Tag = "1",
Type = LayoutType.Column,
BackgroundColor = Colors.Blue,
HorizontalOptions = LayoutOptions.Fill,
Children = new List<SkiaControl>()
{
new SkiaMarkdownLabel()
{
Margin=16,
FontFamily="OpenSansRegular",
FontSize=15,
Text="`CODE` xx",
TextColor=Colors.White,
}.CenterX(),
new WheelPicker()
{
Margin = 100,
Tag = "Picker",
DataSource = itemsSource,
//ItemTemplate = new DataTemplate(() =>
//{
// return new SkiaLabel()
// {
// Text = "???",
// BackgroundColor = Colors.Yellow
// };
//})
}
}
}
};
_reloads++;
this.Content = Canvas;
}
private void ReloadUI(Type[] obj)
{
MainThread.BeginInvokeOnMainThread(() =>
{
Build();
});
}
}
}