Skip to content

Commit

Permalink
Merge branch 'release/v24.1.1' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
billhenn committed Jul 22, 2024
2 parents 82dae50 + 5d4d548 commit e907173
Show file tree
Hide file tree
Showing 16 changed files with 243 additions and 136 deletions.
7 changes: 2 additions & 5 deletions Documentation/topics/supported-technologies.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ The products have assemblies available for multiple runtime frameworks, includin
The assemblies have the following dependencies on UI frameworks:

- Avalonia UI v11.0.7 or later
- Native themes compatible up to Avalonia UI v11.0.10
- Native themes compatible up to Avalonia UI v11.0.11

> [!NOTE]
> 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).
Expand All @@ -26,13 +26,10 @@ The assemblies have the following dependencies on UI frameworks:
The products have been tested and are supported under the following architectures:

- Any CPU
- ARM64 (see note below)
- ARM64
- x64
- x86

> [!WARNING]
> Avalonia has a known issue where rendering on a Windows ARM64 device such as the Windows Dev Kit 2023 (Project Volterra) is currently not functional. This was last validated on Avalonia v11.0.4.
## Platforms

The products have been tested on the following platforms:
Expand Down
4 changes: 2 additions & 2 deletions Samples/SampleBrowser/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
<Nullable>enable</Nullable>
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>

<Version>24.1.0.0</Version>
<InformationalVersion>24.1.0.0 - 20240506</InformationalVersion>
<Version>24.1.1.0</Version>
<InformationalVersion>24.1.1.0 - 20240722</InformationalVersion>

<Product>Actipro Avalonia UI Controls Sample Browser</Product>
<Title>$(Product)</Title>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Project>

<PropertyGroup>
<ActiproVersion>24.1.0</ActiproVersion>
<ActiproVersion>24.1.1</ActiproVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@
</Style>
<Style Selector="TextBlock.value">
<Setter Property="Foreground" Value="{actipro:ThemeResource ControlForegroundBrushSolidAccent}" />
<Setter Property="FontWeight" Value="DemiBold" />
<Setter Property="FontWeight" Value="SemiBold" />
</Style>
</StackPanel.Styles>
<actipro:Avatar Height="64" BorderBrush="{actipro:ThemeResource ControlForegroundBrushSolidAccent}" BorderThickness="2">
Expand Down Expand Up @@ -612,7 +612,7 @@
</Style>
<Style Selector="TextBlock.value">
<Setter Property="Foreground" Value="{actipro:ThemeResource ControlForegroundBrushSolidAccent}" />
<Setter Property="FontWeight" Value="DemiBold" />
<Setter Property="FontWeight" Value="SemiBold" />
</Style>
</StackPanel.Styles>
<actipro:Avatar Grid.Column="0" Height="64">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -882,6 +882,7 @@
<TextBlock Classes="theme-form-control-label" Text="Theme" />
<ComboBox x:Name="overflowUsageTheme" SelectedIndex="0" ItemsSource="{actipro:DelimitedArray 'Default, Elevated, Outline, Soft, Solid, Subtle'}" />
</StackPanel>
<CheckBox IsChecked="{Binding (ScrollViewer.IsScrollChainingEnabled)}">Is scroll chaining enabled</CheckBox>
<CheckBox IsChecked="{Binding IsAnimationEnabled}">Is animation enabled</CheckBox>
<CheckBox IsChecked="{Binding IsEnabled}">Is enabled</CheckBox>
</StackPanel>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@
<PathIcon Data="{StaticResource icon-fluent-mdl2-color}" />
</actipro:SettingsCard.HeaderIcon>
<actipro:SettingsCard.Description>
<actipro:HyperlinkTextBlock FontWeight="DemiBold" FontSize="{actipro:ThemeResource DefaultFontSizeSmall}"
<actipro:HyperlinkTextBlock FontWeight="SemiBold" FontSize="{actipro:ThemeResource DefaultFontSizeSmall}"
Text="Open system settings"
Command="{Binding #sampleRootControl.SettingClickedCommand}" CommandParameter="System Settings"
/>
Expand Down Expand Up @@ -575,7 +575,7 @@
Command="{Binding #sampleRootControl.SettingClickedCommand}"
CommandParameter="System Settings"
FontSize="{actipro:ThemeResource DefaultFontSizeSmall}"
FontWeight="DemiBold"
FontWeight="SemiBold"
Text="Open system settings" />
</actipro:SettingsCard.Description>
<ComboBox SelectedIndex="2">
Expand All @@ -602,7 +602,7 @@
Command="{Binding #sampleRootControl.SettingClickedCommand}"
CommandParameter="System Settings"
FontSize="{actipro:ThemeResource DefaultFontSizeSmall}"
FontWeight="DemiBold"
FontWeight="SemiBold"
Text="Open system settings" />
</actipro:SettingsCard.Description>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
<PathIcon Data="{StaticResource icon-fluent-mdl2-color}" />
</actipro:SettingsCard.HeaderIcon>
<actipro:SettingsCard.Description>
<actipro:HyperlinkTextBlock FontWeight="DemiBold" FontSize="{actipro:ThemeResource DefaultFontSizeSmall}"
<actipro:HyperlinkTextBlock FontWeight="SemiBold" FontSize="{actipro:ThemeResource DefaultFontSizeSmall}"
Text="Open system settings"/>
</actipro:SettingsCard.Description>
<ComboBox SelectedIndex="2">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,5 +104,64 @@
</sampleBrowser:ControlExample>


<sampleBrowser:ControlExample
Header="Custom scroll buttons"
Footer="Optionally hide the built-in scroll buttons for a custom scroll user interface."
HorizontalContentAlignment="Center"
>

<actipro:ShadowChrome Elevation="8">
<Border Background="{actipro:ThemeResource Container1BackgroundBrush}" CornerRadius="8" Padding="5">
<Grid ColumnDefinitions="*,Auto" >
<actipro:ScrollableOverflowPresenter x:Name="customScrollUsage" AllowEmbeddedScrollButtons="False">
<ItemsControl ItemsSource="{actipro:DelimitedArray '#ffb900, #e74856, #0078d7, #0099bc, #7a7574, #767676, #ff8d00, #e81123, #0063b1, #2d7d9a, #5d5a58, #4c4a48, #f7630c, #ea005e, #8e8cd8, #00b7c3, #68768a, #69797e, #ca5010, #c30052, #6b69d6, #038387, #515c6b, #4a5459, #da3b01, #e3008c, #8764b8, #00b294, #567c73, #647c64, #ef6950, #bf0077, #744da9, #018574, #486860, #525e54, #d13438, #c239b3, #b146c2, #00cc6a, #498205, #847545, #ff4343, #9a0089, #881798, #10893e, #107c10, #7e735f', Type=actipro:UIColor}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Margin="5" Orientation="Horizontal" Spacing="5" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="actipro:UIColor">
<sampleBrowser:CopyColorButton Content="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</actipro:ScrollableOverflowPresenter>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<RepeatButton Command="{Binding #customScrollUsage.ScrollBackwardCommand}" ContentTemplate="{actipro:GlyphTemplate LeftArrow16}" />
<RepeatButton Command="{Binding #customScrollUsage.ScrollForwardCommand}" ContentTemplate="{actipro:GlyphTemplate RightArrow16}"/>
</StackPanel>
</Grid>
</Border>
</actipro:ShadowChrome>

<sampleBrowser:ControlExample.CodeExamples>
<sampleBrowser:CodeExample xml:space="preserve">
<![CDATA[
<Grid ColumnDefinitions="*,Auto">
<!-- Disable the built-in scroll buttons -->
<actipro:ScrollableOverflowPresenter
x:Name="overflowPresenter"
AllowEmbeddedScrollButtons="False"
Orientation="Horizontal">
<!-- Content here -->
</actipro:ScrollableOverflowPresenter>
<!-- Define custom buttons bound to the scroll commands -->
<StackPanel Grid.Column="1" Orientation="Horizontal">
<RepeatButton Command="{Binding #overflowPresenter.ScrollBackwardCommand}" ContentTemplate="{actipro:GlyphTemplate LeftArrow16}" />
<RepeatButton Command="{Binding #overflowPresenter.ScrollForwardCommand}" ContentTemplate="{actipro:GlyphTemplate RightArrow16}"/>
</StackPanel>
</Grid>
]]>
</sampleBrowser:CodeExample>
</sampleBrowser:ControlExample.CodeExamples>
</sampleBrowser:ControlExample>


</sampleBrowser:ControlExampleItemsControl>
</UserControl>
Original file line number Diff line number Diff line change
Expand Up @@ -655,17 +655,17 @@ private void OnMenuItemClicked(object? sender, Avalonia.Interactivity.RoutedEven
<TextBox Watermark="This textbox has a custom context menu">
<TextBox.ContextMenu>
<ContextMenu>
<MenuItem Header="Cu_t" Command="{Binding $parent[TextBox].Cut}" IsEnabled="{Binding $parent[TextBox].CanCut}">
<MenuItem Header="Cu_t" Command="{Binding $parent[TextBox].Cut}" IsEnabled="{Binding $parent[TextBox].CanCut}" InputGesture="{x:Static TextBox.CutGesture}">
<MenuItem.Icon>
<actipro:DynamicImage Source="/Images/Icons/Cut16.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Cop_y" Command="{Binding $parent[TextBox].Copy}" IsEnabled="{Binding $parent[TextBox].CanCopy}">
<MenuItem Header="Cop_y" Command="{Binding $parent[TextBox].Copy}" IsEnabled="{Binding $parent[TextBox].CanCopy}" InputGesture="{x:Static TextBox.CopyGesture}">
<MenuItem.Icon>
<actipro:DynamicImage Source="/Images/Icons/Copy16.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="_Paste" Command="{Binding $parent[TextBox].Paste}" IsEnabled="{Binding $parent[TextBox].CanPaste}">
<MenuItem Header="_Paste" Command="{Binding $parent[TextBox].Paste}" IsEnabled="{Binding $parent[TextBox].CanPaste}" InputGesture="{x:Static TextBox.PasteGesture}">
<MenuItem.Icon>
<actipro:DynamicImage Source="/Images/Icons/Paste16.png" />
</MenuItem.Icon>
Expand All @@ -685,21 +685,24 @@ private void OnMenuItemClicked(object? sender, Avalonia.Interactivity.RoutedEven
<ContextMenu>
<MenuItem Header="Cu_t"
Command="{Binding $parent[TextBox].Cut}"
IsEnabled="{Binding $parent[TextBox].CanCut}">
IsEnabled="{Binding $parent[TextBox].CanCut}"
InputGesture="{x:Static TextBox.CutGesture}">
<MenuItem.Icon>
<actipro:DynamicImage Source="/Images/Icons/Cut16.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Cop_y"
Command="{Binding $parent[TextBox].Copy}"
IsEnabled="{Binding $parent[TextBox].CanCopy}">
IsEnabled="{Binding $parent[TextBox].CanCopy}"
InputGesture="{x:Static TextBox.CopyGesture}">
<MenuItem.Icon>
<actipro:DynamicImage Source="/Images/Icons/Copy16.png" />
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="_Paste"
Command="{Binding $parent[TextBox].Paste}"
IsEnabled="{Binding $parent[TextBox].CanPaste}">
IsEnabled="{Binding $parent[TextBox].CanPaste}"
InputGesture="{x:Static TextBox.PasteGesture}">
<MenuItem.Icon>
<actipro:DynamicImage Source="/Images/Icons/Paste16.png" />
</MenuItem.Icon>
Expand All @@ -725,9 +728,9 @@ private void OnMenuItemClicked(object? sender, Avalonia.Interactivity.RoutedEven
<StackPanel Spacing="10">
<StackPanel.Resources>
<MenuFlyout x:Key="CustomTextBoxContextFlyout">
<MenuItem Header="Cu_t" Command="{Binding $parent[TextBox].Cut}" IsEnabled="{Binding $parent[TextBox].CanCut}" />
<MenuItem Header="Cop_y" Command="{Binding $parent[TextBox].Copy}" IsEnabled="{Binding $parent[TextBox].CanCopy}" />
<MenuItem Header="_Paste" Command="{Binding $parent[TextBox].Paste}" IsEnabled="{Binding $parent[TextBox].CanPaste}" />
<MenuItem Header="Cu_t" Command="{Binding $parent[TextBox].Cut}" IsEnabled="{Binding $parent[TextBox].CanCut}" InputGesture="{x:Static TextBox.CutGesture}" />
<MenuItem Header="Cop_y" Command="{Binding $parent[TextBox].Copy}" IsEnabled="{Binding $parent[TextBox].CanCopy}" InputGesture="{x:Static TextBox.CopyGesture}" />
<MenuItem Header="_Paste" Command="{Binding $parent[TextBox].Paste}" IsEnabled="{Binding $parent[TextBox].CanPaste}" InputGesture="{x:Static TextBox.PasteGesture}" />
<Separator />
<MenuItem Header="_Select All" Command="{Binding $parent[TextBox].SelectAll}" IsEnabled="{Binding $parent[TextBox].Text, Converter={x:Static StringConverters.IsNotNullOrEmpty}}" />
</MenuFlyout>
Expand All @@ -750,13 +753,16 @@ private void OnMenuItemClicked(object? sender, Avalonia.Interactivity.RoutedEven
<MenuFlyout x:Key="CustomTextBoxContextFlyout">
<MenuItem Header="Cu_t"
Command="{Binding $parent[TextBox].Cut}"
IsEnabled="{Binding $parent[TextBox].CanCut}" />
IsEnabled="{Binding $parent[TextBox].CanCut}"
InputGesture="{x:Static TextBox.CutGesture}" />
<MenuItem Header="Cop_y"
Command="{Binding $parent[TextBox].Copy}"
IsEnabled="{Binding $parent[TextBox].CanCopy}" />
IsEnabled="{Binding $parent[TextBox].CanCopy}"
InputGesture="{x:Static TextBox.CopyGesture}" />
<MenuItem Header="_Paste"
Command="{Binding $parent[TextBox].Paste}"
IsEnabled="{Binding $parent[TextBox].CanPaste}" />
IsEnabled="{Binding $parent[TextBox].CanPaste}"
InputGesture="{x:Static TextBox.PasteGesture}" />
<Separator />
<MenuItem Header="_Select All"
Command="{Binding $parent[TextBox].SelectAll}"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<Project Sdk="Microsoft.NET.Sdk">
<!-- NOTE: Additional configuration defined within 'Directory.Build.props' file -->

<PropertyGroup>
<AssemblyName>SampleBrowser</AssemblyName>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
# 5/6/2024 - v24.1.0
# 7/22/2024 - v24.1.1

## Fundamentals
- Updated SegmentedBar to support ScrollViewer.IsScrollChainingEnabled.
## Themes
- Updated MenuHeadingFontWeight theme resource from Bold to SemiBold.
- Updated TextBox control theme to work around a ScrollViewer issue.
## Shared Library
- Added new ScrollableOverflowPresenter properties for ScrollBackwardCommand, ScrollForwardCommand, and AllowEmbeddedScrollButtons that can be used to hide the built-in scroll buttons and bind scroll operations to other controls. Added a new sample to demonstrate the feature.
- Added the ResizablePopupContentHost and PopupResizeGrip primitive controls.
- Added OverlayInputFilter that can be used with WindowOverlayManager to control which content is disabled when an overlay is displayed (like those used by User Prompt).
- Improved accessibility of ScrollableOverflowPresenter embedded scroll buttons.
- Updated ScrollableOverflowPresenter to support ScrollViewer.IsScrollChainingEnabled by only marking mouse wheel events as handled when scrolling was actually performed.
- Fixed issue where changing ScrollableOverflowPresenter.UseInfiniteConstraint did not trigger an updated layout.
- Fixed issue where CopyButton and ToggleThemeButton might not have a default theme applied.

---

# 5/6/2024 - v24.1.0

## Fundamentals
- Added the Card control, which displayed grouped information for a single subject.
Expand All @@ -11,7 +29,7 @@
- Updated BadgeAdorner to automatically bind Badge.DataContext to the adorned element's DataContext when Badge.DataContext is null.
- Updated BadgeAdorner to enable clipping when the Badge is within the bounds of the adorned element and disable clipping when outside the bounds.
- Renamed UserPromptControl's FooterImage and StatusImage properties as FooterImageSource and StatusImageSource.
- Fixed a possible exception when assinging the owner of a UserPromptWindow if the explicit owner was undefined and the coerced owner was invalid.
- Fixed a possible exception when assigning the owner of a UserPromptWindow if the explicit owner was undefined and the coerced owner was invalid.
## Themes
- Added the ThemeProperties.ToggleSwitchHasFarAffinityProperty attached property with updated ToggleSwitch theme to allow the knob/track of a ToggleSwitch to be arranged on the right side of the control instead of the left.
- Updated native control themes with changes in Avalonia through v11.0.10.
Expand Down
Loading

0 comments on commit e907173

Please sign in to comment.