Skip to content

Commit 536d06b

Browse files
committed
Merge branch 'release/v24.2.0' into main
2 parents e907173 + a8e5766 commit 536d06b

File tree

31 files changed

+431
-280
lines changed

31 files changed

+431
-280
lines changed

Documentation/docfx.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
"_docsCopyrightYears": "2021-2024",
5959
"_docsProductHref": "https://www.actiprosoftware.com/products/controls/avalonia",
6060
"_docsProductName": "Avalonia UI",
61-
"_docsProductVersion": "24.1",
61+
"_docsProductVersion": "24.2",
6262
"_disableContribution": true,
6363
"_enableNewTab": true,
6464
"_gitContribute": {
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
---
2+
title: "Converting to v24.2"
3+
page-title: "Converting to v24.2 - Conversion Notes"
4+
order: 98
5+
---
6+
# Converting to v24.2
7+
8+
## Avalonia UI Dependency
9+
10+
Updated the minimum Avalonia UI dependency from v11.0.7 to v11.1.0.
11+
12+
## MenuItem Toggle Support
13+
14+
Avalonia v11.1.0 adds built-in toggle support for menu items using either a checkbox or radio button. Previously, a `CheckBox` or `RadioButton` control had to be assigned as content for the `MenuItem.Icon` property to reflect the toggle state.
15+
16+
Actipro Themes provided the [CheckBoxMenuIndicator](xref:@ActiproUIRoot.Themes.ControlThemeKind.CheckBoxMenuIndicator) and [RadioButtonMenuIndicator](xref:@ActiproUIRoot.Themes.ControlThemeKind.RadioButtonMenuIndicator) themes specifically for the purpose of using `CheckBox` or `RadioButton` as icons. Actipro's native themes have been updated to support the new `MenuItem` toggle capabilities, and developers should migrate their code to use the new features as well. The [CheckBoxMenuIndicator](xref:@ActiproUIRoot.Themes.ControlThemeKind.CheckBoxMenuIndicator) and [RadioButtonMenuIndicator](xref:@ActiproUIRoot.Themes.ControlThemeKind.RadioButtonMenuIndicator) themes are no longer necessary and will be removed in a future release.
17+
18+
## Removed Control Themes
19+
20+
Avalonia v11.1.0 defines a default control theme for `ContentControl` (including derived `UserControl`) and `NativeMenuBar`, so Actipro Themes no longer needs to provide a default control theme. These control themes and their corresponding entires in [ControlThemeKind](xref:@ActiproUIRoot.Themes.ControlThemeKind) have been removed.

Documentation/topics/conversion/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ Occasionally during large updates to a product, some breaking changes are necess
99

1010
Read the following topics that are appropriate for your scenario if you are converting from an older version to the latest version.
1111

12+
- [Converting to v24.2](converting-to-v24-2.md)
1213
- [Converting to v24.1](converting-to-v24-1.md)
1314
- [Converting to v23.1](converting-to-v23-1.md)

Documentation/topics/fundamentals/controls/settings-expander.md

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ xmlns:shared="http://schemas.actiprosoftware.com/winfx/xaml/shared"
256256
xmlns:themes="http://schemas.actiprosoftware.com/winfx/xaml/themes"
257257
xmlns:views="http://schemas.actiprosoftware.com/winfx/xaml/views"
258258
...
259-
<views:SettingsExpanderHeader="Setting name" ... >
259+
<views:SettingsExpander Header="Setting name" ... >
260260

261261
<views:SettingsExpander.ItemContainerStyle>
262262
<Style TargetType="views:SettingsCard" BasedOn="{StaticResource {x:Static themes:ViewsResourceKeys.SettingsCardSettingsExpanderItemStyleKey}}">
@@ -271,6 +271,60 @@ xmlns:views="http://schemas.actiprosoftware.com/winfx/xaml/views"
271271
```
272272
}
273273

274+
### Working with MVVM
275+
276+
All children of [SettingsExpander](xref:@ActiproUIRoot.Controls.SettingsExpander) must be instances of [SettingsCard](settings-card.md). When binding `ItemsSource` to a collection of view models, each view model will automatically be wrapped in a [SettingsCard](settings-card.md) container with the `DataContext` set to the view model.
277+
278+
@if (avalonia) {
279+
Properties on the view model can be bound to properties on the [SettingsCard](settings-card.md) by assigning an `ItemContainerTheme` like shown in the following example:
280+
281+
```xaml
282+
xmlns:actipro="http://schemas.actiprosoftware.com/avaloniaui"
283+
...
284+
<actipro:SettingsExpander Header="Setting name" ... >
285+
286+
<actipro:SettingsExpander.ItemContainerTheme>
287+
<ControlTheme
288+
TargetType="actipro:SettingsCard"
289+
BasedOn="{actipro:ControlTheme SettingsCardSettingsExpanderItem}"
290+
x:DataType="custom:MyViewModelType">
291+
292+
<!-- Bind to view model properties -->
293+
<Setter Property="Header" Value="{Binding Header}" />
294+
<Setter Property="Description" Value="{Binding Description}" />
295+
296+
</ControlTheme>
297+
</actipro:SettingsExpander.ItemContainerTheme>
298+
299+
</actipro:SettingsExpander>
300+
```
301+
}
302+
@if (wpf) {
303+
Properties on the view model can be bound to properties on the [SettingsCard](settings-card.md) by assigning an `ItemContainerStyle` like shown in the following example:
304+
305+
```xaml
306+
xmlns:shared="http://schemas.actiprosoftware.com/winfx/xaml/shared"
307+
xmlns:themes="http://schemas.actiprosoftware.com/winfx/xaml/themes"
308+
xmlns:views="http://schemas.actiprosoftware.com/winfx/xaml/views"
309+
...
310+
<views:SettingsExpander Header="Setting name" ... >
311+
312+
<views:SettingsExpander.ItemContainerStyle>
313+
<Style TargetType="views:SettingsCard" BasedOn="{StaticResource {x:Static themes:ViewsResourceKeys.SettingsCardSettingsExpanderItemStyleKey}}">
314+
315+
<!-- Bind to view model properties -->
316+
<Setter Property="Header" Value="{Binding Header}" />
317+
<Setter Property="Description" Value="{Binding Description}" />
318+
319+
</Style>
320+
</views:SettingsExpander.ItemContainerStyle>
321+
322+
<!-- Define child settings here -->
323+
324+
</views:SettingsExpander>
325+
```
326+
}
327+
274328
## Items Header and Footer
275329

276330
![Screenshot](../images/settings-expander-header-footer.png)

Documentation/topics/supported-technologies.md

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,55 @@ The products have assemblies available for multiple runtime frameworks, includin
1313

1414
- .NET 6 or later
1515

16-
The assemblies have the following dependencies on UI frameworks:
16+
### Avalonia UI Support Matrix
17+
18+
The assemblies have dependencies on the Avalonia UI framework as follows:
19+
20+
<table>
21+
<thead>
22+
23+
<tr>
24+
<th>Actipro Controls Versions</th>
25+
<th>Avalonia UI Support</th>
26+
</tr>
27+
28+
</thead>
29+
<tbody>
30+
31+
<tr>
32+
<td>Actipro Controls v24.2</td>
33+
<td>
34+
35+
- Avalonia UI v11.1.0 or later
36+
- Native themes compatible up to Avalonia UI v11.1.0
37+
- *Minor updates to Avalonia UI are expected to be supported and will be verified as they are released*
38+
39+
</td>
40+
</tr>
41+
42+
<tr>
43+
<td>Actipro Controls v24.1</td>
44+
<td>
1745

1846
- Avalonia UI v11.0.7 or later
1947
- Native themes compatible up to Avalonia UI v11.0.11
2048

49+
</td>
50+
</tr>
51+
52+
<tr>
53+
<td>Actipro Controls v23.1</td>
54+
<td>
55+
56+
- Avalonia UI v11.0.5 or later
57+
- Native themes compatible up to Avalonia UI v11.0.7
58+
59+
</td>
60+
</tr>
61+
62+
</tbody>
63+
</table>
64+
2165
> [!NOTE]
2266
> While they do not change frequently, native themes must be kept in sync with Avalonia control updates and may not work with untested releases. If you encounter any issues with native themes, please contact [Support](support.md).
2367

Documentation/topics/themes/native-control-themes.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ This example shows how to render a solid accented button:
7373

7474
### Button Controls
7575

76-
All button control themes support the `accent`, `success`, `warning`, and `danger` style class names for semantic color variants.
76+
Most button control themes support the `accent`, `success`, `warning`, and `danger` style class names for semantic color variants.
7777

7878
![Screenshot](images/semantic-colors-button.png)
7979

@@ -87,7 +87,7 @@ All button control themes support the `accent`, `success`, `warning`, and `dange
8787

8888
- [ButtonBase](xref:@ActiproUIRoot.Themes.ControlThemeKind.ButtonBase) - Base control theme used by several others.
8989
- [ButtonInvisible](xref:@ActiproUIRoot.Themes.ControlThemeKind.ButtonInvisible) (`theme-invisible`) - Completely transparent but can be clicked.
90-
- [ButtonLink](xref:@ActiproUIRoot.Themes.ControlThemeKind.ButtonLink) (`theme-link`) - Has a link-like appearance.
90+
- [ButtonLink](xref:@ActiproUIRoot.Themes.ControlThemeKind.ButtonLink) (`theme-link`) - Has a link-like appearance (unrelated to `HyperlinkButton` control).
9191
- [ButtonOutline](xref:@ActiproUIRoot.Themes.ControlThemeKind.ButtonOutline) (`theme-outline`) - Has an outline appearance.
9292
- [ButtonSoft](xref:@ActiproUIRoot.Themes.ControlThemeKind.ButtonSoft) (`theme-soft`) - Has a soft fill appearance.
9393
- [ButtonSolid](xref:@ActiproUIRoot.Themes.ControlThemeKind.ButtonSolid) (`theme-solid`) - Has a solid appearance.
@@ -107,6 +107,12 @@ All button control themes support the `accent`, `success`, `warning`, and `dange
107107
- [DropDownButtonSolid](xref:@ActiproUIRoot.Themes.ControlThemeKind.DropDownButtonSolid) (`theme-solid`) - Has a solid appearance.
108108
- [DropDownButtonSubtle](xref:@ActiproUIRoot.Themes.ControlThemeKind.DropDownButtonSubtle) (`theme-subtle`) - Has a subtle fill appearance, only on pointer over.
109109

110+
#### HyperlinkButton Type
111+
112+
`HyperlinkButton` is a special button with a link-like appearance that can show alternate colors if a link has already been visited and open a URI when clicked. Due to the specific nature of this control and the base need for two distinct colors (visited and un-visited), this button type **does not** support the control themes discussed in the "Button Type" section or semantic color variants.
113+
114+
If theme and semantic color variant capabilities are desired, an alternative to `HyperlinkButton` is to use a standard `Button` with the `theme-link` theme. This will achieve a similar appearance as `HyperlinkButton`, although without URI navigation or distinct color options for visited links.
115+
110116
#### RepeatButton Type
111117

112118
`RepeatButton` uses the same control themes as `Button`. See the "Button Type" section for details.
@@ -347,16 +353,14 @@ The following additional control theme is used by the default control theme:
347353
#### MenuFlyoutPresenter Type
348354

349355
- [MenuFlyoutPresenter](xref:@ActiproUIRoot.Themes.ControlThemeKind.MenuFlyoutPresenter) - Default control theme.
356+
- [MenuFlyoutPresenterHorizontal](xref:@ActiproUIRoot.Themes.ControlThemeKind.MenuFlyoutPresenterHorizontal) - Control theme used for horizontal flyout menus.
350357

351358
#### MenuItem Type
352359

353360
- [MenuItem](xref:@ActiproUIRoot.Themes.ControlThemeKind.MenuItem) - Default control theme.
354361
- [MenuItemHeading](xref:@ActiproUIRoot.Themes.ControlThemeKind.MenuItemHeading) (`theme-menuitem-heading`) - Bold heading that is a disabled menu item.
355362
- [MenuItemTopLevel](xref:@ActiproUIRoot.Themes.ControlThemeKind.MenuItemTopLevel) - A menu item directly within a menu bar.
356-
357-
#### NativeMenuBar Type
358-
359-
- [NativeMenuBar](xref:@ActiproUIRoot.Themes.ControlThemeKind.NativeMenuBar) - Default control theme.
363+
- [MenuItemHorizontal](xref:@ActiproUIRoot.Themes.ControlThemeKind.MenuItemHorizontal) - A menu item used within a horizontal flyout menu.
360364

361365
#### Separator Type
362366

@@ -423,7 +427,7 @@ The `CheckBox`, `RadioButton`, and `ToggleSwitch` control type themes automatica
423427
- [CheckBoxBase](xref:@ActiproUIRoot.Themes.ControlThemeKind.CheckBoxBase) - Base control theme used by several others.
424428
- [CheckBoxOutline](xref:@ActiproUIRoot.Themes.ControlThemeKind.CheckBoxOutline) (`theme-outline`) - Has an outline appearance.
425429
- [CheckBoxSolid](xref:@ActiproUIRoot.Themes.ControlThemeKind.CheckBoxSolid) (`theme-solid`) - Has a solid appearance.
426-
- [CheckBoxMenuIndicator](xref:@ActiproUIRoot.Themes.ControlThemeKind.CheckBoxMenuIndicator) - Used within `MenuItem.Icon` to indicate checked state.
430+
- [CheckBoxMenuIndicator](xref:@ActiproUIRoot.Themes.ControlThemeKind.CheckBoxMenuIndicator) - (Deprecated) Used within `MenuItem.Icon` to indicate checked state. This theme is no longer necessary since `MenuItem` added built-in support for toggle indicators.
427431

428432
#### RadioButton Type
429433

@@ -434,7 +438,7 @@ The `CheckBox`, `RadioButton`, and `ToggleSwitch` control type themes automatica
434438
- [RadioButtonBase](xref:@ActiproUIRoot.Themes.ControlThemeKind.RadioButtonBase) - Base control theme used by several others.
435439
- [RadioButtonOutline](xref:@ActiproUIRoot.Themes.ControlThemeKind.RadioButtonOutline) (`theme-outline`) - Has an outline appearance.
436440
- [RadioButtonSolid](xref:@ActiproUIRoot.Themes.ControlThemeKind.RadioButtonSolid) (`theme-solid`) - Has a solid appearance.
437-
- [RadioButtonMenuIndicator](xref:@ActiproUIRoot.Themes.ControlThemeKind.RadioButtonMenuIndicator) - Used within `MenuItem.Icon` to indicate checked state.
441+
- [RadioButtonMenuIndicator](xref:@ActiproUIRoot.Themes.ControlThemeKind.RadioButtonMenuIndicator) - (Deprecated) Used within `MenuItem.Icon` to indicate checked state. This theme is no longer necessary since `MenuItem` added built-in support for toggle indicators.
438442

439443
#### Slider Type
440444

@@ -593,10 +597,10 @@ The following default control themes are defined for their respective control ty
593597

594598
- [AdornerLayer](xref:@ActiproUIRoot.Themes.ControlThemeKind.AdornerLayer)
595599
- [Carousel](xref:@ActiproUIRoot.Themes.ControlThemeKind.Carousel)
596-
- [ContentControl](xref:@ActiproUIRoot.Themes.ControlThemeKind.ContentControl)
597600
- [EmbeddableControlRoot](xref:@ActiproUIRoot.Themes.ControlThemeKind.EmbeddableControlRoot)
598601
- [EmbeddableCoFlyoutPresenterntrolRoot](xref:@ActiproUIRoot.Themes.ControlThemeKind.FlyoutPresenter)
599602
- [GridSplitter](xref:@ActiproUIRoot.Themes.ControlThemeKind.GridSplitter)
603+
- [HeaderedContentControl](xref:@ActiproUIRoot.Themes.ControlThemeKind.HeaderedContentControl)
600604
- [ManagedFileChooser](xref:@ActiproUIRoot.Themes.ControlThemeKind.ManagedFileChooser)
601605
- [OverlayPopupHost](xref:@ActiproUIRoot.Themes.ControlThemeKind.OverlayPopupHost)
602606
- [PathIcon](xref:@ActiproUIRoot.Themes.ControlThemeKind.PathIcon)
@@ -608,7 +612,6 @@ The following default control themes are defined for their respective control ty
608612
- [TitleBar](xref:@ActiproUIRoot.Themes.ControlThemeKind.TitleBar)
609613
- [ToolTip](xref:@ActiproUIRoot.Themes.ControlThemeKind.ToolTip)
610614
- [TransitioningContentControl](xref:@ActiproUIRoot.Themes.ControlThemeKind.TransitioningContentControl)
611-
- [UserControl](xref:@ActiproUIRoot.Themes.ControlThemeKind.UserControl)
612615
- [Window](xref:@ActiproUIRoot.Themes.ControlThemeKind.Window)
613616
- [WindowNotificationManager](xref:@ActiproUIRoot.Themes.ControlThemeKind.WindowNotificationManager)
614617

Documentation/topics/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,8 @@ items:
172172
items:
173173
- name: "Overview"
174174
href: conversion/index.md
175+
- name: "Converting to v24.2"
176+
href: conversion/converting-to-v24-2.md
175177
- name: "Converting to v24.1"
176178
href: conversion/converting-to-v24-1.md
177179
- name: "Converting to v23.1"

Samples/SampleBrowser/Directory.Build.props

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
<Nullable>enable</Nullable>
88
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
99

10-
<Version>24.1.1.0</Version>
11-
<InformationalVersion>24.1.1.0 - 20240722</InformationalVersion>
10+
<Version>24.2.0.0</Version>
11+
<InformationalVersion>24.2.0.0 - 20240723</InformationalVersion>
1212

1313
<Product>Actipro Avalonia UI Controls Sample Browser</Product>
1414
<Title>$(Product)</Title>

Samples/SampleBrowser/References/ActiproSoftware.References.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project>
33

44
<PropertyGroup>
5-
<ActiproVersion>24.1.1</ActiproVersion>
5+
<ActiproVersion>24.2.0</ActiproVersion>
66
</PropertyGroup>
77

88
<ItemGroup>

Samples/SampleBrowser/References/Avalonia.References.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project>
33

44
<PropertyGroup>
5-
<AvaloniaVersion>11.0.7</AvaloniaVersion>
5+
<AvaloniaVersion>11.1.0</AvaloniaVersion>
66
</PropertyGroup>
77

88
<ItemGroup>

0 commit comments

Comments
 (0)