Skip to content

Commit 16b52aa

Browse files
committed
Merge branch 'release/v24.1.5' into main
2 parents 7961e91 + 2bcd0b1 commit 16b52aa

File tree

121 files changed

+817
-214
lines changed

Some content is hidden

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

121 files changed

+817
-214
lines changed

Build/Build.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
<RootNamespace>ActiproSoftware.Tools.Builds</RootNamespace>
1919
<Company>Actipro Software LLC</Company>
2020
<Authors>Actipro Software LLC</Authors>
21-
<Copyright>Copyright (c) 2020-2024 Actipro Software LLC. All rights reserved.</Copyright>
21+
<Copyright>Copyright (c) 2020-2025 Actipro Software LLC. All rights reserved.</Copyright>
2222

2323
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
2424

Documentation/docfx.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
"_appTitle": "Actipro WPF Controls Docs",
5454
"_docsCompanyHref": "https://www.actiprosoftware.com/products/controls/wpf",
5555
"_docsCompanyName": "Actipro Software LLC",
56-
"_docsCopyrightYears": "1999-2024",
56+
"_docsCopyrightYears": "1999-2025",
5757
"_docsProductHref": "https://www.actiprosoftware.com/products/controls/wpf",
5858
"_docsProductName": "WPF Controls",
5959
"_docsProductVersion": "24.1",

Documentation/topics/bars/controls/using-custom-controls.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ xmlns:editors="http://schemas.actiprosoftware.com/winfx/xaml/editors"
182182
bars:BarControlService.PanelSpacingSuggestion="Both"
183183
bars:BarControlService.SmallImageSource="/Images/Minimum16.png"
184184
Width="60" MinHeight="24" MaxHeight="30"
185-
UsageContext="ToolBar"
185+
UsageContext="Menu"
186186
themes:ThemeProperties.CornerRadius="3"
187187
Value="{Binding MinimumValue, Mode=TwoWay}"
188188
/>

Documentation/topics/grids/tree-control-features/selection.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,3 +75,13 @@ public override void SetIsSelected(object item, bool value) {
7575
The [TreeListBox](xref:@ActiproUIRoot.Controls.Grids.TreeListBox).[SelectionChanged](xref:@ActiproUIRoot.Controls.Grids.TreeListBox.SelectionChanged) event is raised whenever the selection (such the values stored in the [SelectedItem](xref:@ActiproUIRoot.Controls.Grids.TreeListBox.SelectedItem) and [SelectedItems](xref:@ActiproUIRoot.Controls.Grids.TreeListBox.SelectedItems) properties) has changed.
7676

7777
The [TreeListBox](xref:@ActiproUIRoot.Controls.Grids.TreeListBox).[ItemSelecting](xref:@ActiproUIRoot.Controls.Grids.TreeListBox.ItemSelecting) event is raised before an item is about to be selected. The `Cancel` property on the event arguments can be set to `true` to prevent the item from being selected.
78+
79+
## Bulk Selection Updates
80+
81+
When making a large number of selection updates, it is beneficial for performance reasons to minimize the events that are raised. Bulk selection updates can be made within a `using` block for a selection block to improve performance.
82+
83+
```csharp
84+
using (var batch = treeListBox.CreateSelectionBatch()) {
85+
...
86+
}
87+
```

Documentation/topics/licensing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ The contents of a *licenses.licx* file are pretty simple. It needs a single lin
152152
This single line (update the version to match the one you use) should be added to the *licenses.licx* file in any project that uses Actipro @@PlatformName control or SyntaxEditor add-on products:
153153

154154
```
155-
ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.Wpf, Version=24.1.4.0, Culture=neutral, PublicKeyToken=36ff2196ab5654b9
155+
ActiproSoftware.Products.ActiproLicenseToken, ActiproSoftware.Shared.Wpf, Version=24.1.5.0, Culture=neutral, PublicKeyToken=36ff2196ab5654b9
156156
```
157157

158158
> [!IMPORTANT]

Documentation/topics/syntaxeditor/user-interface/styles/highlighting-style-registries.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ SyntaxEditorThemeManager.Manage(consoleWindowRegistry);
535535

536536
// Configure the editor to use the custom registry
537537
SyntaxEditor console = new SyntaxEditor();
538-
console.DefaultHighlightingStyleRegistry = consoleWindowRegistry;
538+
console.HighlightingStyleRegistry = consoleWindowRegistry;
539539
```
540540

541541
You must populate the entries into the custom registry.

License.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2024 Actipro Software LLC.
3+
Copyright (c) 2025 Actipro Software LLC.
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

Samples/PrismIntegration/PrismIntegration.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88

99
<ApplicationIcon>Actipro.ico</ApplicationIcon>
1010

11-
<Version>24.1.4.0</Version>
11+
<Version>24.1.5.0</Version>
1212

1313
<RootNamespace>ActiproSoftware.Windows.PrismIntegration</RootNamespace>
1414
<Company>Actipro Software LLC</Company>
15-
<Copyright>Copyright (c) 2008-2024 Actipro Software LLC. All rights reserved.</Copyright>
15+
<Copyright>Copyright (c) 2008-2025 Actipro Software LLC. All rights reserved.</Copyright>
1616
<Title>Prism (Unity) Integration Sample</Title>
1717
<Product>$(Title)</Product>
1818
<Description>Sample application to demonstrate integrating into a Prism (Unity) application.</Description>
@@ -32,7 +32,7 @@
3232
</ItemGroup>
3333

3434
<ItemGroup Label="Actipro References">
35-
<PackageReference Include="ActiproSoftware.Controls.WPF.Docking" Version="24.1.4" />
35+
<PackageReference Include="ActiproSoftware.Controls.WPF.Docking" Version="24.1.5" />
3636
</ItemGroup>
3737

3838
</Project>

Samples/SampleBrowser/ActiproSoftware.References.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
https://www.actiprosoftware.com/docs/controls/wpf/nuget
99
-->
1010
<PropertyGroup>
11-
<ActiproVersion>24.1.4</ActiproVersion>
11+
<ActiproVersion>24.1.5</ActiproVersion>
1212
</PropertyGroup>
1313

1414
<ItemGroup>
Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
using ActiproSoftware.Windows.Controls.Bars;
2+
using ActiproSoftware.Windows.Controls.Bars.Mvvm;
3+
using System.Collections;
4+
5+
namespace ActiproSoftware.ProductSamples.BarsSamples.QuickStart.ComboBoxAndEditors {
6+
7+
/// <summary>
8+
/// Represents a view model for an auto-complete box control within a bar control.
9+
/// </summary>
10+
public class AutoCompleteBoxViewModel : BarKeyedObjectViewModelBase {
11+
12+
private string description;
13+
private bool hasClearButton;
14+
private IEnumerable itemsSource;
15+
private string itemsSourceDisplayMemberPath;
16+
private string itemsSourceTextMemberPath;
17+
private string label;
18+
private string popupHeader;
19+
private double requestedWidth = 110.0;
20+
private object selectedItem;
21+
22+
/////////////////////////////////////////////////////////////////////////////////////////////////////
23+
// OBJECT
24+
/////////////////////////////////////////////////////////////////////////////////////////////////////
25+
26+
/// <summary>
27+
/// Initializes a new instance of the class.
28+
/// </summary>
29+
public AutoCompleteBoxViewModel() // Parameterless constructor required for XAML support
30+
: this(key: null) { }
31+
32+
/// <summary>
33+
/// Initializes a new instance of the class with the specified key. The label is auto-generated.
34+
/// </summary>
35+
/// <param name="key">A string that uniquely identifies the control.</param>
36+
public AutoCompleteBoxViewModel(string key)
37+
: this(key, label: null) { }
38+
39+
/// <summary>
40+
/// Initializes a new instance of the class with the specified key and label.
41+
/// </summary>
42+
/// <param name="key">A string that uniquely identifies the control.</param>
43+
/// <param name="label">The text label to display, which is auto-generated from the <paramref name="key"/> if <c>null</c>.</param>
44+
public AutoCompleteBoxViewModel(string key, string label)
45+
: base(key) {
46+
47+
this.label = label ?? BarControlService.LabelGenerator.FromKey(key);
48+
}
49+
50+
/////////////////////////////////////////////////////////////////////////////////////////////////////
51+
// PUBLIC PROCEDURES
52+
/////////////////////////////////////////////////////////////////////////////////////////////////////
53+
54+
/// <summary>
55+
/// Gets or sets the text label to display.
56+
/// </summary>
57+
/// <value>The text label to display.</value>
58+
public string Label {
59+
get => label;
60+
set {
61+
if (label != value) {
62+
label = value;
63+
this.NotifyPropertyChanged(nameof(Label));
64+
}
65+
}
66+
}
67+
68+
/// <summary>
69+
/// Gets or sets the text description to display in screen tips.
70+
/// </summary>
71+
/// <value>The text description to display in screen tips.</value>
72+
public string Description {
73+
get => description;
74+
set {
75+
if (description != value) {
76+
description = value;
77+
this.NotifyPropertyChanged(nameof(Description));
78+
}
79+
}
80+
}
81+
82+
/// <summary>
83+
/// Gets or sets if the clear button is displayed.
84+
/// </summary>
85+
/// <value><c>true</c> if the clear button is displayed; otherwise, <c>false</c>.</value>
86+
public bool HasClearButton {
87+
get => hasClearButton;
88+
set {
89+
if (hasClearButton != value) {
90+
hasClearButton = value;
91+
this.NotifyPropertyChanged(nameof(HasClearButton));
92+
}
93+
}
94+
}
95+
96+
/// <summary>
97+
/// Gets or sets the source of items to be auto-completed.
98+
/// </summary>
99+
/// <value>The items source.</value>
100+
public IEnumerable ItemsSource {
101+
get => itemsSource;
102+
set {
103+
if (itemsSource != value) {
104+
itemsSource = value;
105+
this.NotifyPropertyChanged(nameof(ItemsSource));
106+
}
107+
}
108+
}
109+
110+
/// <summary>
111+
/// Gets or sets a path to a value on the source object to serve as the visual representation of the object.
112+
/// </summary>
113+
/// <value>A path to a value on the source object to serve as the visual representation of the object.</value>
114+
public string ItemsSourceDisplayMemberPath {
115+
get => itemsSourceDisplayMemberPath;
116+
set {
117+
if (itemsSourceDisplayMemberPath != value) {
118+
itemsSourceDisplayMemberPath = value;
119+
this.NotifyPropertyChanged(nameof(ItemsSourceDisplayMemberPath));
120+
}
121+
}
122+
}
123+
124+
/// <summary>
125+
/// Gets or sets the property path that is used to get the value for display in the text box portion of the control, when an item is selected.
126+
/// </summary>
127+
/// <value>The property path that is used to get the value for display in the text box portion of the control, when an item is selected.</value>
128+
public string ItemsSourceTextMemberPath {
129+
get => itemsSourceTextMemberPath;
130+
set {
131+
if (itemsSourceTextMemberPath != value) {
132+
itemsSourceTextMemberPath = value;
133+
this.NotifyPropertyChanged(nameof(ItemsSourceTextMemberPath));
134+
}
135+
}
136+
}
137+
138+
/// <summary>
139+
/// Gets or sets the header to be displayed in the popup.
140+
/// </summary>
141+
/// <value>The header to be displayed in the popup.</value>
142+
public string PopupHeader {
143+
get => popupHeader;
144+
set {
145+
if (popupHeader != value) {
146+
popupHeader = value;
147+
this.NotifyPropertyChanged(nameof(PopupHeader));
148+
}
149+
}
150+
}
151+
152+
/// <summary>
153+
/// Gets or sets the requested width of the control.
154+
/// </summary>
155+
/// <value>
156+
/// The requested width of the control.
157+
/// The default value is <c>110</c>.
158+
/// </value>
159+
public double RequestedWidth {
160+
get => requestedWidth;
161+
set {
162+
if (requestedWidth != value) {
163+
requestedWidth = value;
164+
this.NotifyPropertyChanged(nameof(RequestedWidth));
165+
}
166+
}
167+
}
168+
169+
/// <summary>
170+
/// Gets or sets the currently selected item.
171+
/// </summary>
172+
/// <value>The currently selected item.</value>
173+
public object SelectedItem {
174+
get => selectedItem;
175+
set {
176+
if (selectedItem != value) {
177+
selectedItem = value;
178+
this.NotifyPropertyChanged(nameof(SelectedItem));
179+
}
180+
}
181+
}
182+
183+
}
184+
185+
}

0 commit comments

Comments
 (0)