Skip to content

Commit 647678c

Browse files
committed
Merge branch 'release/v24.1.3' into main
2 parents 095bb53 + d6f3ce3 commit 647678c

File tree

81 files changed

+1344
-187
lines changed

Some content is hidden

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

81 files changed

+1344
-187
lines changed

Documentation/topics/barcode/symbologies/qr-code.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ It is readable by most mobile devices with cameras and can be used to display te
1313

1414
*A sample of this symbology*
1515

16-
This symbology can encode up to 7,089 numeric characters, 4,296 alpha numeric characters, or 2,953 bytes. Encoding modes are automatically switched when it is most efficient to do so. This symbology implementation also auto-calculates the QR Code symbol version and inserts error correction codewords.
16+
This symbology can encode up to 7,089 numeric characters, 4,296 alpha numeric characters, or 2,953 bytes. Extended Channel Interpretation (ECI) support also allows all UTF-8 characters to be encoded. Encoding modes are automatically switched when it is most efficient to do so. This symbology implementation also auto-calculates the QR Code symbol version and inserts error correction codewords.
1717

1818
> [!IMPORTANT]
1919
> When using larger version numbers (i.e., version 25 and up), it may be necessary to lower the default cell size in order for QR code readers to properly read the value.
@@ -94,6 +94,19 @@ Gets or sets the `Brush` to use for rendering the background.
9494
<tr>
9595
<td>
9696

97+
[EciMode](xref:@ActiproUIRoot.Controls.BarCode.QrCodeSymbology.EciMode) Property
98+
99+
</td>
100+
<td>
101+
102+
Gets or sets the Extended Channel Interpretation (ECI) mode used to encode the specified value, when the `EncodingMode` resolves to `QrEncodingMode.Binary`. The default value is `null`, which indicates the ECI mode will be auto-selected based on the specified value.
103+
104+
</td>
105+
</tr>
106+
107+
<tr>
108+
<td>
109+
97110
[EncodingMode](xref:@ActiproUIRoot.Controls.BarCode.QrCodeSymbology.EncodingMode) Property
98111

99112
</td>

Documentation/topics/bars/controls/combobox.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ In summary, a [BarMenuGallery](xref:@ActiproUIRoot.Controls.Bars.BarMenuGallery)
3131
| Base class | [BarMenuGalleryHostBase](xref:@ActiproUIRoot.Controls.Bars.Primitives.BarMenuGalleryHostBase), which indirectly inherits native `Selector`. |
3232
| Has key | Yes, via the [Key](xref:@ActiproUIRoot.Controls.Bars.Primitives.BarGalleryBase.Key) property. |
3333
| Has label | Yes, via the [Label](xref:@ActiproUIRoot.Controls.Bars.Primitives.BarGalleryBase.Label) property. Auto-generated from the `Key` value if not specified. |
34-
| Has image | Yes, via the [SmallImageSource](xref:@ActiproUIRoot.Controls.Bars.Primitives.BarGalleryBase.SmallImageSource) property. |
34+
| Has image | Yes, inline via the [InlineImageSourcePath](xref:@ActiproUIRoot.Controls.Bars.BarComboBox.InlineImageSourcePath) property or externally via the [SmallImageSource](xref:@ActiproUIRoot.Controls.Bars.Primitives.BarGalleryBase.SmallImageSource) property. |
3535
| Has popup | Yes, which shows a [BarMenuGallery](xref:@ActiproUIRoot.Controls.Bars.BarMenuGallery) with the same items, and optionally additional menu items. |
3636
| Is checkable | No. |
3737
| Variant sizes | None. |
@@ -88,7 +88,7 @@ There are several appearance-related properties that determine how the controls
8888

8989
The [Text](xref:@ActiproUIRoot.Controls.Bars.BarComboBox.Text) property gets or sets the text that is displayed within the combobox.
9090

91-
The [TextPath](xref:@ActiproUIRoot.Controls.Bars.BarComboBox.TextPath) property specifies the path to a property off the view model gallery item class to display in the combobox when a gallery item is selected.
91+
The [TextPath](xref:@ActiproUIRoot.Controls.Bars.BarComboBox.TextPath) property specifies the path to a string-based property off the view model gallery item class to display in the combobox when a gallery item is selected.
9292

9393
### Label
9494

@@ -102,7 +102,9 @@ The `Label` can be auto-generated based on the control's `Key` property. For in
102102

103103
### Images
104104

105-
The control can display an image via [SmallImageSource](xref:@ActiproUIRoot.Controls.Bars.Primitives.BarGalleryBase.SmallImageSource) that helps identify its function. The image is not rendered by the control itself, but can show externally (such as when in a [RibbonControlGroup](xref:@ActiproUIRoot.Controls.Bars.RibbonControlGroup)), or in customization UI.
105+
An image from the selected gallery item can be displayed inline within the control, before the combobox text. This image will update when the combobox's selection is changed. The [InlineImageSourcePath](xref:@ActiproUIRoot.Controls.Bars.BarComboBox.InlineImageSourcePath) property specifies the path to an `ImageSource`-based property off the view model gallery item class to display in the combobox when a gallery item is selected.
106+
107+
Alternatively, the control can display a static image via [SmallImageSource](xref:@ActiproUIRoot.Controls.Bars.Primitives.BarGalleryBase.SmallImageSource) that helps identify its function. The image is not tied to the selected item and is not rendered by the control itself, but can show externally (such as when in a [RibbonControlGroup](xref:@ActiproUIRoot.Controls.Bars.RibbonControlGroup)), or in customization UI.
106108

107109
### Title
108110

@@ -200,5 +202,6 @@ Since the [BarComboBox](xref:@ActiproUIRoot.Controls.Bars.BarComboBox) control i
200202
The [BarComboBox](xref:@ActiproUIRoot.Controls.Bars.BarComboBox) control changes the default value of the following inherited gallery property to a common setting for a combobox drop-down appearance:
201203

202204
- [MaxMenuColumnCount](xref:@ActiproUIRoot.Controls.Bars.Primitives.BarMenuGalleryHostBase.MaxMenuColumnCount) = `1` - Uses a single column for gallery items.
205+
- [MenuResizeMode](xref:@ActiproUIRoot.Controls.Bars.Primitives.BarMenuGalleryHostBase.MenuResizeMode) = `Vertical` - Allows vertical gallery resizing and properly supports virtualization of gallery items, which aids in performance with large galleries.
203206

204207
See the [Gallery](gallery.md) topic for more information on galleries.

Documentation/topics/bars/controls/gallery.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,9 @@ Menu galleries that contain many items displayed in multiple columns generally u
219219

220220
The [RibbonGallery](xref:@ActiproUIRoot.Controls.Bars.RibbonGallery).[MenuResizeMode](xref:@ActiproUIRoot.Controls.Bars.Primitives.BarMenuGalleryHostBase.MenuResizeMode) and [BarMenuGallery](xref:@ActiproUIRoot.Controls.Bars.BarMenuGallery).[ResizeMode](xref:@ActiproUIRoot.Controls.Bars.BarMenuGallery.ResizeMode) properties set the resize mode for the containing menu to use.
221221

222+
> [!TIP]
223+
> For performance reasons in properly supporting virtualization, it is recommended that galleries that can grow vertically to more than a handful of rows should be set to either `Vertical` or `Both` resize mode, per the advice above.
224+
222225
### Surrounding Separators on Menu
223226

224227
Menu galleries will automatically render a separator between them and surrounding menu items. In some scenarios, this may be undesired.

Documentation/topics/bars/ribbon-features/quick-access-toolbar.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ Several Actipro themes require the use of white monochrome images in specific po
123123

124124
When one of the Office Colorful themes is used, such as [OfficeColorfulIndigo](xref:@ActiproUIRoot.Themes.ThemeNames.OfficeColorfulIndigo) above, any button images in the Quick Access Toolbar must be switched over to monochrome variations. Ribbon has logic in it to automatically perform this conversion on a ribbon button with a supplied normal image.
125125

126-
See the [Themes' Getting Started](../../themes/getting-started.md) page for a complete list of themes.
126+
See the [Themes' Getting Started](../../themes/getting-started.md) topic for a complete list of themes.
127127

128128
### Optimal Image Design
129129

@@ -140,4 +140,10 @@ In some cases, such as for a vector icon that has a portion showing a selected c
140140

141141
This can be achieved by setting the attached [ImageProvider](xref:@ActiproUIRoot.Media.ImageProvider).`CanAdapt` property to `false` on the portion for the selected color. That will tell the converter to skip over converting colors within that portion of the image.
142142

143-
See the [Image Provider](../../themes/image-provider.md) topic for more details on working with image adaptation.
143+
See the [Image Provider](../../themes/image-provider.md) topic for more details on working with image adaptation.
144+
145+
## Key Tips
146+
147+
Key tips for controls in the quick access toolbar are auto-generated, beginning with numbers. In some cases, the numbers might conflict with a ribbon tab that also uses a key tip beginning with a number. In this scenario, the [KeyTipTextPrefix](xref:@ActiproUIRoot.Controls.Bars.RibbonQuickAccessToolBar.KeyTipTextPrefix) property can be set to an unused character like `'Q'`, which will prefix the auto-generated key tip text, thereby removing the conflict.
148+
149+
See the [Key Tips](key-tips.md) topic for additional details on key tips in general.

Documentation/topics/bars/ribbon-features/tabs-groups-controlgroups.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,13 @@ Most ribbon tabs are always visible, but some tabs are only relevant when the ap
7676

7777
See the [Contextual Tabs](contextual-tabs.md) topic for more details on that feature.
7878

79+
### Hiding Tabs
80+
81+
Some applications with only one ribbon tab may wish to hide the tab row entirely, so that a minimal ribbon is presented. This appearance can be achieved by setting these [Ribbon](xref:@ActiproUIRoot.Controls.Bars.Ribbon) properties:
82+
- [AreTabsVisible](xref:@ActiproUIRoot.Controls.Bars.Ribbon.AreTabsVisible) = `false`
83+
- [ApplicationButton](xref:@ActiproUIRoot.Controls.Ribbon.Controls.Primitives.ApplicationButton) = `null`
84+
- [TabRowToolBarContent](xref:@ActiproUIRoot.Controls.Bars.Ribbon.TabRowToolBarContent) = `null`
85+
7986
## Groups
8087

8188
Groups are used to organize related controls within a tab and can have a different effect based on the ribbon's layout mode.
@@ -88,7 +95,6 @@ See the [Resizing and Variants](resizing.md) topic for more details on how group
8895

8996
See the [Layout Modes and Density](layout-and-density.md) topic for more details on `Classic` modde.
9097

91-
9298
### Simplified Layout Mode
9399

94100
In the `Simplified` layout mode, controls still visible in the ribbon will render a separator between groups. Any controls that have moved to the **Tab Overflow** menu will be organized under a header based on the containing group's label. Groups can optionally be configured to overflow to their own menu instead of the common **Tab Overflow** menu.
@@ -105,6 +111,10 @@ The [Label](xref:@ActiproUIRoot.Controls.Bars.RibbonGroup.Label) can be auto-gen
105111

106112
See the [Label and Key Tip Generation](../controls/auto-generation.md) topic for more information on auto-generated labels.
107113

114+
### Label Mode
115+
116+
Group labels only show by default on the ribbon when in `Classic` layout mode. In scenarios where a ribbon in `Simplified` layout mode should also show group labels, set the [Ribbon](xref:@ActiproUIRoot.Controls.Bars.Ribbon).[GroupLabelMode](xref:@ActiproUIRoot.Controls.Bars.Ribbon.GroupLabelMode) property to [Always](xref:@ActiproUIRoot.Controls.Bars.RibbonGroupLabelMode.Always) instead of its default value of [Default](xref:@ActiproUIRoot.Controls.Bars.RibbonGroupLabelMode.Default).
117+
108118
### Collapsed Button Key Tip (Classic layout mode only)
109119

110120
When a group in the `Classic` layout mode is collapsed to a button, the collapsed button supports key tips. When the key tip of a group's collapsed button is accessed, the content of the group is displayed in a popup.

Documentation/topics/conversion/converting-to-v24-1.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -252,6 +252,10 @@ The affected controls grouped by product are:
252252
- Shared Library - `UserPromptControl`.
253253
- Views - `Book`, `TaskBoard`, and related controls.
254254

255+
## Context Menu Access Key Updates
256+
257+
Built-in context menus for the Docking and Grids products now support access keys. An access key is designated by placing an underscore (`_`) character before the desired letter of a menu header. Previously, all underscore characters in context menus were escaped. Since the text of a context menu is a [customizable string resource](../customizing-string-resources.md) and underscores are no longer escaped, any custom strings that wish to display an underscore character without it being used as an access key must escape the character by using two underscores (e.g., `"Escaped __Underscore"` will display as `"Escaped _Underscore"`).
258+
255259
## Removed XBAP Support
256260

257261
XBAP (WPF Browser Application) support has been removed since this feature is no longer supported by .NET or modern browsers.

Documentation/topics/docking/docking-window-features/floating-dock-hosts.md

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,69 @@ To ensure that a portion of the hosted floating windows are always visible to th
124124

125125
## Determining Which Floating Windows Show in the Windows TaskBar
126126

127-
The [DockSite](xref:@ActiproUIRoot.Controls.Docking.DockSite).[FloatingWindowShowInTaskBarMode](xref:@ActiproUIRoot.Controls.Docking.DockSite.FloatingWindowShowInTaskBarMode) property can be used to determine which kinds of non-hosted floating windows are displayed in the Windows taskbar. The default behavior is for any floating window that contains a "workspace" (such as a floating tabbed MDI document) to show up in the taskbar and not be "owned" by the main window. This means that the floating window can appear behind the main window when the main window is activated, but it is ok since the floating window can be accessed via the taskbar.
127+
The [DockSite](xref:@ActiproUIRoot.Controls.Docking.DockSite).[FloatingWindowShowInTaskBarMode](xref:@ActiproUIRoot.Controls.Docking.DockSite.FloatingWindowShowInTaskBarMode) property can be used to determine which kinds of non-hosted floating windows are displayed in the Windows taskbar. The default behavior is for any floating window that contains a "workspace" (such as a floating tabbed MDI document) to show up in the taskbar and not be "owned" by the main window. This means that the floating window can appear behind the main window when the main window is activated, but it is ok since the floating window can be accessed via the taskbar. Note that the [DockSite](xref:@ActiproUIRoot.Controls.Docking.DockSite).[FloatingWindowOwnerMode](xref:@ActiproUIRoot.Controls.Docking.DockSite.FloatingWindowOwnerMode) property can alter the default owner behavior.
128128

129129
Change the property to `FloatingWindowShowInTaskBarMode.Never` to prevent all floating windows from showing in the taskbar. In this scenario, all floating windows will be "owned" by the main window so that they remain accessible.
130130

131-
Change the property to `FloatingWindowShowInTaskBarMode.Always` to force all floating windows to show in the taskbar. In this scenario, no floating windows will be "owned" by the main window and they all will be able to appear behind it when the main window is activated.
131+
Change the property to `FloatingWindowShowInTaskBarMode.Always` to force all floating windows to show in the taskbar. In this scenario, no floating windows will be "owned" by the main window and they all will be able to appear behind it when the main window is activated, unless this behavior is altered by the [DockSite](xref:@ActiproUIRoot.Controls.Docking.DockSite).[FloatingWindowOwnerMode](xref:@ActiproUIRoot.Controls.Docking.DockSite.FloatingWindowOwnerMode) property.
132132

133133
}
134+
135+
## Use With Ribbons or ToolBars on the Main Window
136+
137+
WPF will move focus to the last-focused control within a `Window` when the `Window` is activated. This can be a problem when working with floating docking windows and wanting to use a main `Window`'s ribbon or toolbar to execute commands on the active floating docking window. As soon as a ribbon or toolbar's button is clicked, the main `Window` is activated, which then can focus another docking window within the main `Window`, causing the button's command to work on it instead of the intended floating docking window.
138+
139+
The Actipro [WindowChrome](../../themes/windowchrome.md) class has a [CanMouseActivateOverToolBar](xref:@ActiproUIRoot.Themes.WindowChrome.CanMouseActivateOverToolBar) property that can be set to `false` to prevent toolbar clicks from activating the `Window`. A toolbar is considered any control with the `WindowChrome.ElementKind` attached property set to [WindowChromeElementKind.ToolBar](xref:@ActiproUIRoot.Themes.WindowChromeElementKind.ToolBar). Bars' [Ribbon](xref:@ActiproUIRoot.Controls.Bars.Ribbon) and [StandaloneToolBar](xref:@ActiproUIRoot.Controls.Bars.StandaloneToolBar) controls have this attached property set by default.
140+
141+
.NET also has a couple properties that should be applied in app startup that help prevent `Window` activation when working with menus,
142+
such as a menu that opens when pressing a [BarPopupButton](xref:@ActiproUIRoot.Controls.Bars.BarPopupButton).
143+
144+
When these features are combined, controls on main `Window` ribbons and toolbars can execute commands on active floating document windows.
145+
146+
### Configuring WindowChrome
147+
148+
A regular `Window` can be configured through [WindowChrome](../../themes/windowchrome.md) to prevent mouse activation over any control with the `WindowChrome.ElementKind` attached property set to [WindowChromeElementKind.ToolBar](xref:@ActiproUIRoot.Themes.WindowChromeElementKind.ToolBar):
149+
150+
```xaml
151+
<Window ...>
152+
<themes:WindowChrome.Chrome>
153+
<themes:WindowChrome CanMouseActivateOverToolBar="False" />
154+
</themes:WindowChrome.Chrome>
155+
...
156+
</Window>
157+
```
158+
159+
Or if using a Bars [RibbonWindow](../../bars/ribbon-features/ribbon-window.md):
160+
161+
```xaml
162+
<bars:RibbonWindow ...>
163+
<themes:WindowChrome.Chrome>
164+
<themes:RibbonWindowChrome CanMouseActivateOverToolBar="False" />
165+
</themes:WindowChrome.Chrome>
166+
...
167+
</bars:RibbonWindow>
168+
```
169+
170+
### Preventing Mouse Activation on a Native ToolBar
171+
172+
If a [WindowChrome](../../themes/windowchrome.md) is applied to the main `Window` as above, an attached property can be set on a `ToolBar` to prevent mouse activation of the ancestor `Window` when the toolbar is clicked.
173+
174+
```xaml
175+
<ToolBar ... themes:WindowChrome.ElementKind="ToolBar">
176+
...
177+
</ToolBar>
178+
```
179+
180+
### Additional WPF Properties
181+
182+
Two WPF properties were added in .NET Framework 4.0 to allow Visual Studio to support a toolbar system that functioned with floating docking windows:
183+
184+
- `HwndSource.DefaultAcquireHwndFocusInMenuMode` - Whether a `Window` can acquire Win32 focus for the WPF containing window when the user interacts with menus.
185+
- `Keyboard.DefaultRestoreFocusMode` - Determines the behavior when WPF restores focus.
186+
187+
When attempting to use main `Window` ribbons or toolbars with floating docking windows, these two properties should be set to the following values in application startup logic:
188+
189+
```csharp
190+
HwndSource.DefaultAcquireHwndFocusInMenuMode = false;
191+
Keyboard.DefaultRestoreFocusMode = RestoreFocusMode.None;
192+
```

Documentation/topics/editors/editboxes/timespaneditbox.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,15 @@ Each of the features listed in the table below describe functionality that is co
8383

8484
## Formats
8585

86-
Standard time formats are supported via the [Format](xref:@ActiproUIRoot.Controls.Editors.TimeSpanEditBox.Format) property and affect the textual value display. These formats are recommended:
86+
Standard timespan formats are supported via the [Format](xref:@ActiproUIRoot.Controls.Editors.TimeSpanEditBox.Format) property and affect the textual value display. These formats are recommended:
8787

8888
- `"c"`
8989
- `"g"`
9090
- `"G"`
9191

92+
> [!NOTE]
93+
> If a custom timespan format is used instead of a standard timespan format, the format should begin with a `+` (plus sign) to indicate that negative timespans are supported. If a custom timespan format does not begin with a plus sign, then the [Minimum](xref:@ActiproUIRoot.Controls.Editors.TimeSpanEditBox.Minimum) property should be set to a zero or higher timespan value.
94+
9295
## Minimum and Maximum Values
9396

9497
Minimum and maximum values may be assigned via the [Maximum](xref:@ActiproUIRoot.Controls.Editors.TimeSpanEditBox.Maximum) and [Minimum](xref:@ActiproUIRoot.Controls.Editors.TimeSpanEditBox.Minimum) properties.

0 commit comments

Comments
 (0)