Skip to content

Commit 92456e6

Browse files
Resolved conflicts.
2 parents 780a0dd + 89ef65a commit 92456e6

File tree

12 files changed

+375
-66
lines changed

12 files changed

+375
-66
lines changed

MAUI/Cartesian-Charts/Trackball.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ this.Content = chart;
553553

554554
### TrackballCreated
555555

556-
The [`TrackballCreated`](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Charts.SfCartesianChart.html#Syncfusion_Maui_Charts_SfCartesianChart_TrackballCreated) event occurs when the trackball moves from one data point to another. This argument contains an object of the ChartPointsInfo. The following properties are available in the `ChartPointInfo` class to customize the appearance of the trackball label based on a condition.
556+
The [`TrackballCreated`](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Charts.SfCartesianChart.html#Syncfusion_Maui_Charts_SfCartesianChart_TrackballCreated) event occurs when the trackball moves from one data point to another. This argument contains an object of the `TrackballPointInfo`. The following properties are available in the [TrackballPointInfo](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Charts.TrackballPointInfo.html) class to customize the appearance of the trackball label based on a condition.
557557

558558
* [Label](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Charts.TrackballPointInfo.html#Syncfusion_Maui_Charts_TrackballPointInfo_Label) of type `string`: Used to change the text of the trackball label.
559559
* [LabelStyle](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Charts.TrackballPointInfo.html#Syncfusion_Maui_Charts_TrackballPointInfo_LabelStyle) of type `ChartLabelStyle`: Used to customize the appearance of the trackball label.

MAUI/Chat/Scrolling.md

Lines changed: 99 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,104 @@ By default, the [SfChat](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Cha
4949
{% endhighlight %}
5050
{% endtabs %}
5151

52+
## Scroll to bottom button
53+
54+
The `SfChat` control provides the option to display a scroll to bottom button by setting the `ShowScrollToBottomButton` property to `true`. This button appears when scrolled up through older messages and allows quick navigation back to the latest message in the conversation.
55+
56+
{% tabs %}
57+
{% highlight xaml hl_lines="4" %}
58+
<sfChat:SfChat x:Name="sfChat"
59+
Messages="{Binding Messages}"
60+
CurrentUser="{Binding CurrentUser}"
61+
ShowScrollToBottomButton="True"/>
62+
63+
{% endhighlight %}
64+
{% highlight c# hl_lines="5" %}
65+
66+
SfChat sfChat = new SfChat();
67+
ViewModel viewModel = new ViewModel();
68+
sfChat.Messages = viewModel.Messages;
69+
sfChat.CurrentUser = viewModel.CurrentUser;
70+
sfChat.ShowScrollToBottomButton = true;
71+
72+
{% endhighlight %}
73+
{% endtabs %}
74+
75+
![Scroll to bottom button in .NET MAUI Chat](images/scrolling/maui-chat-scroll-to-bottom-button.gif)
76+
77+
### Scroll to bottom button customization
78+
79+
The `SfChat` control allows you to fully customize the scroll to bottom button appearance by using the `ScrollToBottomButtonTemplate` property. This property lets you define a custom view and style.
80+
81+
{% tabs %}
82+
{% highlight xaml hl_lines="20" %}
83+
84+
<ContentPage.Resources>
85+
<ResourceDictionary>
86+
<DataTemplate x:Key="scrollToBottomButtonTemplate">
87+
<Grid>
88+
<Label Text="↓"
89+
FontSize="30"
90+
FontAttributes="Bold"
91+
HorizontalOptions="Center"
92+
VerticalOptions="Center" />
93+
...
94+
</Grid>
95+
</DataTemplate>
96+
</ResourceDictionary>
97+
</ContentPage.Resources>
98+
<ContentPage.Content>
99+
<sfChat:SfChat x:Name="sfChat"
100+
Messages="{Binding Messages}"
101+
CurrentUser="{Binding CurrentUser}"
102+
ShowScrollToBottomButton="True"
103+
ScrollToBottomButtonTemplate="{StaticResource scrollToBottomButtonTemplate}"/>
104+
</ContentPage.Content>
105+
106+
{% endhighlight %}
107+
{% highlight c# hl_lines="18" %}
108+
109+
namespace MauiChat
110+
{
111+
public partial class MainPage : ContentPage
112+
{
113+
SfChat sfChat;
114+
ViewModel viewModel;
115+
116+
public MainPage()
117+
{
118+
InitializeComponent();
119+
this.viewModel = new ViewModel();
120+
121+
this.sfChat = new SfChat
122+
{
123+
Messages = viewModel.Messages,
124+
CurrentUser = viewModel.CurrentUser,
125+
ShowScrollToBottomButton = true,
126+
ScrollToBottomButtonTemplate = new DataTemplate(() =>
127+
{
128+
var grid = new Grid();
129+
var label = new Label
130+
{
131+
Text = "↓",
132+
FontSize = 30,
133+
FontAttributes = FontAttributes.Bold,
134+
HorizontalOptions = LayoutOptions.Center,
135+
VerticalOptions = LayoutOptions.Center
136+
};
137+
grid.Children.Add(label);
138+
return grid;
139+
})
140+
};
141+
142+
this.Content = sfChat;
143+
}
144+
}
145+
}
146+
147+
{% endhighlight %}
148+
{% endtabs %}
149+
52150
## Scrolled event
53151

54152
The [SfChat](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Chat.SfChat.html) control comes with a built-in `Scrolled` event that will be fired whenever the chat control is scrolled. You can get the current scroll offset, whether scrolling has reached the top or bottom of the message list in the [ChatScrolledEventArgs](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Chat.ChatScrolledEventArgs.html). You can handle this event to restrict the auto-scroll in chat for newly added messages, if the user had already scrolled up manually and was currently not at the bottom of the chat when the new message was added.
@@ -72,4 +170,4 @@ The [SfChat](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.Chat.SfChat.htm
72170
}
73171

74172
{% endhighlight %}
75-
{% endtabs %}
173+
{% endtabs %}

MAUI/DataForm/AI-Powered-Smart-DataForm.md

Lines changed: 56 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Create a [.NET MAUI app](https://learn.microsoft.com/en-us/dotnet/maui/get-start
1919

2020
### Step 2: Set up Azure OpenAI
2121

22-
To enable AI functionality in your .NET MAUI Scheduler, first ensure that you have access to [Azure OpenAI](https://azure.microsoft.com/en-in/products/ai-services/openai-service). In the Azure portal, create an Azure OpenAI resource and deploy a model such as GPT-35. Assign a deployment name (for example, GPT35Turbo) that you’ll reference in your application code. Finally, copy the API key and endpoint URL from the resource settings, as these are required for authentication and communication with the OpenAI service.
22+
To enable AI functionality in your .NET MAUI DataForm, first ensure that you have access to [Azure OpenAI](https://azure.microsoft.com/en-in/products/ai-services/openai-service). In the Azure portal, create an Azure OpenAI resource and deploy a model such as GPT-35. Assign a deployment name (for example, GPT35Turbo) that you’ll reference in your application code. Finally, copy the API key and endpoint URL from the resource settings, as these are required for authentication and communication with the OpenAI service.
2323

2424
### Step 3: Connect to the Azure OpenAI
2525

@@ -168,33 +168,42 @@ Within the base service class (AzureBaseService), initialize the OpenAIClient wi
168168

169169
### Step 1: Designing the User Interface
170170

171-
#### Editor and Button - Capturing User Prompts
171+
#### Editor and Button - Capturing User Prompts
172172

173173
Use an Editor to collect natural language prompts and a Button to send the prompt to Azure OpenAI. The Editor allows users to describe the form they want, while the Button triggers the logic to process the prompt and generate the form.
174174

175175
{% tabs %}
176176

177177
{% highlight xaml %}
178178

179-
<VerticalStackLayout Margin="20" VerticalOptions="Center" HorizontalOptions="Center">
180-
<Label x:Name="describeLabel"
181-
Text="Create AI-Powered Smart Forms in .NET MAUI for Efficient Productivity."
182-
LineBreakMode="WordWrap" FontSize="Small" FontAttributes="Bold" />
183-
<Grid ColumnDefinitions="0.7*,0.3*" Margin="10" ColumnSpacing="5">
184-
185-
<Editor AutoSize="TextChanges" x:Name="entry"
186-
PlaceholderColor="Gray"
187-
VerticalOptions="Center"
188-
HorizontalOptions="Fill"
189-
Placeholder="Create your own data form" />
190-
<Button x:Name="createButton"
191-
Grid.Column="1" CornerRadius="10"
192-
HeightRequest="35" Text="&#xe784;"
193-
FontSize="Small"
194-
FontFamily="MauiMaterialAssets"
195-
VerticalOptions="Center" HorizontalOptions="Start" />
196-
</Grid>
197-
</VerticalStackLayout>
179+
<VerticalStackLayout Margin="20"
180+
VerticalOptions="Center"
181+
HorizontalOptions="Center">
182+
<Label x:Name="describeLabel"
183+
Text="Create AI-Powered Smart Forms in .NET MAUI for Efficient Productivity."
184+
LineBreakMode="WordWrap"
185+
FontSize="Small"
186+
FontAttributes="Bold" />
187+
<Grid ColumnDefinitions="0.7*,0.3*"
188+
Margin="10"
189+
ColumnSpacing="5">
190+
<Editor x:Name="entry"
191+
AutoSize="TextChanges"
192+
PlaceholderColor="Gray"
193+
VerticalOptions="Center"
194+
HorizontalOptions="Fill"
195+
Placeholder="Create your own data form" />
196+
<Button x:Name="createButton"
197+
Grid.Column="1"
198+
CornerRadius="10"
199+
HeightRequest="35"
200+
Text="&#xe784;"
201+
FontSize="Small"
202+
FontFamily="MauiMaterialAssets"
203+
VerticalOptions="Center"
204+
HorizontalOptions="Start" />
205+
</Grid>
206+
</VerticalStackLayout>
198207

199208
{% endhighlight %}
200209

@@ -219,7 +228,7 @@ xmlns:core="clr-namespace:Syncfusion.Maui.Core;assembly=Syncfusion.Maui.Core"
219228

220229
{% endtabs %}
221230

222-
#### DataForm - Displaying the Generated Form
231+
#### DataForm - Displaying the Generated Form
223232

224233
The SfDataForm renders the generated form dynamically based on the AI response.
225234

@@ -229,16 +238,16 @@ The SfDataForm renders the generated form dynamically based on the AI response.
229238

230239
xmlns:dataform="clr-namespace:Syncfusion.Maui.DataForm;assembly=Syncfusion.Maui.DataForm"
231240

232-
<dataform:SfDataForm x:Name="dataForm"
233-
Grid.RowSpan="1"
234-
Grid.Row="1" AutoGenerateItems="False"
235-
ValidationMode="PropertyChanged"
236-
LayoutType="TextInputLayout"
237-
HorizontalOptions="Center">
238-
<dataform:SfDataForm.TextInputLayoutSettings>
239-
<dataform:TextInputLayoutSettings ShowHelperText="True"/>
240-
</dataform:SfDataForm.TextInputLayoutSettings>
241-
</dataform:SfDataForm>
241+
<dataform:SfDataForm x:Name="dataForm"
242+
Grid.RowSpan="1"
243+
Grid.Row="1" AutoGenerateItems="False"
244+
ValidationMode="PropertyChanged"
245+
LayoutType="TextInputLayout"
246+
HorizontalOptions="Center">
247+
<dataform:SfDataForm.TextInputLayoutSettings>
248+
<dataform:TextInputLayoutSettings ShowHelperText="True"/>
249+
</dataform:SfDataForm.TextInputLayoutSettings>
250+
</dataform:SfDataForm>
242251

243252
{% endhighlight %}
244253

@@ -252,15 +261,21 @@ The SfAIAssistView offers contextual help, such as real-time suggestions or chat
252261

253262
{% highlight xaml %}
254263

255-
<aiassistview:SfAIAssistView x:Name="aiAssistView"
256-
Grid.Row="1" HorizontalOptions="Fill"
257-
ShowHeader="False"
258-
AssistItems="{Binding Messages}">
259-
<aiassistview:SfAIAssistView.Behaviors>
260-
<local:DataFormAssistViewBehavior x:Name="dataFormAssistViewModel" AIActionButton="{x:Reference aiActionButton}" RefreshButton="{x:Reference refreshButton}" CloseButton="{x:Reference close}"
261-
DataFormNameLabel="{x:Reference dataFormNameLabel}" BusyIndicator="{x:Reference busyIndicator}" DataForm="{x:Reference dataForm}" DataFormGeneratorModel="{x:Reference dataFormGeneratorModel}" Entry="{x:Reference entry}" CreateButton="{x:Reference createButton}"/>
262-
</aiassistview:SfAIAssistView.Behaviors>
263-
</aiassistview:SfAIAssistView>
264+
<aiassistview:SfAIAssistView x:Name="aiAssistView"
265+
Grid.Row="1" HorizontalOptions="Fill"
266+
ShowHeader="False"
267+
AssistItems="{Binding Messages}">
268+
<aiassistview:SfAIAssistView.Behaviors>
269+
<local:DataFormAssistViewBehavior x:Name="dataFormAssistViewModel" AIActionButton="{x:Reference aiActionButton}"
270+
RefreshButton="{x:Reference refreshButton}"
271+
CloseButton="{x:Reference close}"
272+
DataFormNameLabel="{x:Reference dataFormNameLabel}"
273+
BusyIndicator="{x:Reference busyIndicator}"
274+
DataForm="{x:Reference dataForm}"
275+
DataFormGeneratorModel="{x:Reference dataFormGeneratorModel}" Entry="{x:Reference entry}"
276+
CreateButton="{x:Reference createButton}"/>
277+
</aiassistview:SfAIAssistView.Behaviors>
278+
</aiassistview:SfAIAssistView>
264279

265280
{% endhighlight %}
266281

MAUI/DataForm/AI-Powered-Smart-Paste-DataForm.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ This guide introduces the integration of AI-powered Smart Paste functionality in
2222

2323
### Step 2: Set up Azure OpenAI
2424

25-
To enable AI functionality in your .NET MAUI Scheduler, first ensure that you have access to [Azure OpenAI](https://azure.microsoft.com/en-in/products/ai-services/openai-service). In the Azure portal, create an Azure OpenAI resource and deploy a model such as GPT-35. Assign a deployment name (for example, GPT35Turbo) that you’ll reference in your application code. Finally, copy the API key and endpoint URL from the resource settings, as these are required for authentication and communication with the OpenAI service.
25+
To enable AI functionality in your .NET MAUI DataForm, first ensure that you have access to [Azure OpenAI](https://azure.microsoft.com/en-in/products/ai-services/openai-service). In the Azure portal, create an Azure OpenAI resource and deploy a model such as GPT-35. Assign a deployment name (for example, GPT35Turbo) that you’ll reference in your application code. Finally, copy the API key and endpoint URL from the resource settings, as these are required for authentication and communication with the OpenAI service.
2626

2727
### Step 3: Connect to the Azure OpenAI
2828

@@ -220,7 +220,7 @@ Create a view model containing an instance of the model. Assign this instance to
220220

221221
### Step 3: Design the UI
222222

223-
In XAML, set up the form layout - including labels, images, dataform control. Add a smart paste button that triggers that triggers the AI functionality and a submit button for data validation.
223+
In XAML, set up the form layout - including labels, images, dataform control. Add a smart paste button that triggers the AI functionality and a submit button for data validation.
224224

225225
{% tabs %}
226226

MAUI/DataGrid/ToolTip.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ To show tooltips:
1818

1919
## Show tooltip in a header and record cell
2020

21-
To enable tooltip for datagrid, set the `SfDataGrid.ShowToolTip` property to `true`. This will display tooltip containing cell content when users interact with the cells.
21+
To enable tooltip for datagrid, set the [SfDataGrid.ShowToolTip](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.DataGrid.SfDataGrid.html#Syncfusion_Maui_DataGrid_SfDataGrid_ShowToolTip) property to `true`. This will display tooltip containing cell content when users interact with the cells.
2222

2323
{% tabs %}
2424
{% highlight XAML %}
@@ -113,7 +113,7 @@ You can apply basic tooltip styling using the DefaultStyle property of SfDataGri
113113

114114
### Customizing the ToolTip using DataTemplate
115115

116-
You can customize the appearance and content of tooltips by setting the `SfDataGrid.ToolTipTemplate` property.
116+
You can customize the appearance and content of tooltips by setting the [SfDataGrid.ToolTipTemplate](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.DataGrid.SfDataGrid.html#Syncfusion_Maui_DataGrid_SfDataGrid_ToolTipTemplate) property.
117117

118118
{% tabs %}
119119
{% highlight XAML %}
@@ -204,13 +204,13 @@ The below image refers the `AlternateTemplate` which is applied through `ToolTip
204204

205205
### CellToolTipOpening event
206206

207-
The [CellToolTipOpening]() event is raised when a tooltip is about to be displayed for a cell. The event provides [DataGridCellToolTipOpeningEventArgs]() which contains the following properties:
207+
The [CellToolTipOpening](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.DataGrid.SfDataGrid.html#Syncfusion_Maui_DataGrid_SfDataGrid_CellToolTipOpening) event is raised when a tooltip is about to be displayed for a cell. The event provides [DataGridCellToolTipOpeningEventArgs](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.DataGrid.DataGridCellToolTipOpeningEventArgs.html) which contains the following properties:
208208

209-
* [Column](): Gets the GridColumn of the cell for which the tooltip is being shown.
210-
* [RowData](): Gets the data associated with a specific row.
211-
* [RowColumnIndex](): Gets the row and column index of the cell.
212-
* [ToolTipText](): Gets the text content that is displayed within the tooltip.
213-
* [Cancel](): Gets or sets a value indicating whether the tooltip should be displayed. Set to `true` to prevent the tooltip from showing.
209+
* [Column](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.DataGrid.DataGridCellToolTipOpeningEventArgs.html#Syncfusion_Maui_DataGrid_DataGridCellToolTipOpeningEventArgs_Column): Gets the GridColumn of the cell for which the tooltip is being shown.
210+
* [RowData](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.DataGrid.DataGridCellToolTipOpeningEventArgs.html#Syncfusion_Maui_DataGrid_DataGridCellToolTipOpeningEventArgs_RowData): Gets the data associated with a specific row.
211+
* [RowColumnIndex](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.DataGrid.DataGridCellToolTipOpeningEventArgs.html#Syncfusion_Maui_DataGrid_DataGridCellToolTipOpeningEventArgs_RowColumnIndex): Gets the row and column index of the cell.
212+
* [ToolTipText](https://help.syncfusion.com/cr/maui/Syncfusion.Maui.DataGrid.DataGridCellToolTipOpeningEventArgs.html#Syncfusion_Maui_DataGrid_DataGridCellToolTipOpeningEventArgs_ToolTipText): Gets the text content that is displayed within the tooltip.
213+
* `Cancel`: Gets or sets a value indicating whether the tooltip should be displayed. Set to `true` to prevent the tooltip from showing.
214214

215215
{% tabs %}
216216
{% highlight XAML %}

0 commit comments

Comments
 (0)