I would like the fluent theme to support spacing option like it does fonts. The Mail app added a new setting "Folder and message spacing" in which you can pick spacious , medium, or compact. I would like the fluent theme to support something similar. The fluent theme was defined for "finger" access but we still have desktop apps that want dense information with mouse access. I would normally just pick a different theme but because of Windows 10, I can't. Windows 10 no longer supports specifying a default font and WPF no longer defaults to the OS font. This means that all my Windows apps must support picking a font. So I'm stuck with the fluent theme. But I don't always want the "spacious" spacing that the theme uses.
Would it be possible to support picking "spacious", "medium" or "compact" spacing?
Would be useful for setting timezone offsets and for more control to the user
We have a WCF service that continuously polls a database for new/updated items and sends them to WPF clients. The client will process the update, decide what to do and then add/update an item that is displayed in a RadGridView. We use an IEditableCollectionView on top of an ICollectionView. Exception detail is below. App just crashed while sitting idle on Zarate, No mention of MSCORLIB so I think its a different error. Application: ReView.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.ArgumentOutOfRangeException at System.ThrowHelper.ThrowArgumentOutOfRangeException(System.ExceptionArgument, System.ExceptionResource) at Telerik.Windows.Data.KeyedCollection.IndexOf(System.Object) at Telerik.Windows.Controls.DataControl.ItemCoerce(System.Windows.DependencyObject, System.Object) at System.Windows.DependencyObject.ProcessCoerceValue(System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EntryIndex ByRef, Int32 ByRef, System.Windows.EffectiveValueEntry ByRef, System.Windows.EffectiveValueEntry ByRef, System.Object ByRef, System.Object, System.Object, System.Windows.CoerceValueCallback, Boolean, Boolean, Boolean) at System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType) at System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean, System.Windows.OperationType, Boolean) at System.Windows.DependencyObject.SetValue(System.Windows.DependencyProperty, System.Object) at Telerik.Windows.Controls.DataControl.Telerik.Windows.Data.Selection.ISelectorInternal.set_CurrentItem(System.Object) at Telerik.Windows.Data.Selection.ItemSelectionHandler.SynchronizePublicCurrentItem() at Telerik.Windows.Data.Selection.ItemSelectionHandler.HandleCurrentItemChanged() at Telerik.Windows.Controls.GridView.Selection.CompositeSelectionHandler+<>c__DisplayClass6.<OnOwnerItemsCurrentChangedDispatch>b__4() at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at ReView.App.Main() Event Type: Error Event Source: .NET Runtime Event Category: None Event ID: 1026 Date: 10/12/2018 Time: 10:10:15 AM User: N/A Computer: NRAD-NE-RAPAC.ratc.com Description: Application: ReView.exe Framework Version: v4.0.30319 Description: The process was terminated due to an unhandled exception. Exception Info: System.ArgumentOutOfRangeException at System.ThrowHelper.ThrowArgumentOutOfRangeException(System.ExceptionArgument, System.ExceptionResource) at System.Collections.Generic.List`1[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].get_Item(Int32) at Telerik.Windows.Data.ListExtensions.BinarySearch[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](System.Collections.Generic.IList`1<System.__Canon>, System.__Canon, System.Func`3<System.__Canon,System.__Canon,Int32>) at Telerik.Windows.Data.KeyedCollection.IndexOf(System.Object) at Telerik.Windows.Controls.DataControl.ItemCoerce(System.Windows.DependencyObject, System.Object) at System.Windows.DependencyObject.ProcessCoerceValue(System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EntryIndex ByRef, Int32 ByRef, System.Windows.EffectiveValueEntry ByRef, System.Windows.EffectiveValueEntry ByRef, System.Object ByRef, System.Object, System.Object, System.Windows.CoerceValueCallback, Boolean, Boolean, Boolean) at System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType) at System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean, System.Windows.OperationType, Boolean) at System.Windows.DependencyObject.SetValue(System.Windows.DependencyProperty, System.Object) at Telerik.Windows.Controls.DataControl.Telerik.Windows.Data.Selection.ISelectorInternal.set_CurrentItem(System.Object) at Telerik.Windows.Data.Selection.ItemSelectionHandler.SynchronizePublicCurrentItem() at Telerik.Windows.Data.Selection.ItemSelectionHandler.HandleCurrentItemChanged() at Telerik.Windows.Controls.GridView.Selection.CompositeSelectionHandler+<>c__DisplayClass6.<OnOwnerItemsCurrentChangedDispatch>b__4() at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object) at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean) at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) at MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) at MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef) at System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame) at System.Windows.Application.RunDispatcher(System.Object) at System.Windows.Application.RunInternal(System.Windows.Window) at ReView.App.Main() For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. Data:
Telerik.Windows.Controls.SpreadsheetUI.for.Wpf NuGet package is not uploaded on the Telerik NuGet server. Fix available in LIB Version 2018.3.1029.
The control should be customizable so you can place also a content different than an image as in the WPF native splash screen support (https://docs.microsoft.com/en-us/dotnet/framework/wpf/app-development/how-to-add-a-splash-screen-to-a-wpf-application).
The underline types are compared by reference, causing mismatch and incorrect results. Workaround: Use the UnderlineTypes static class to apply underlines. Fix available in R3 2018 SP1 release.
Short version of feature request: It would be nice to be able to enforce unique value in a column in an MVVM environment? Long version of request: To enforce a unique value in a column I ended up with a custom ValidationAttribute in the data model. Very much like the last example in the old thread https://www.telerik.com/forums/force-validation-on-new-record-insert Direct link to the example provided by Telerik: https://www.telerik.com/clientsfiles/375715_328546-TestApp-new.zip At a first glance, the solution seems to work, but if you edit a value in a cell and the new value is the same as another cell in the same column, BOTH these cells would have an error. Not just the cell you edited. I understand that not all cells can be validated whenever a single cell is edited, but it would nice if there was way to configure the RadGridView to “refresh” validations of all visible cells when a validation error is either set or removed? I do not know if a solution like this would fit the internal design of the RadGridView, but it might give you some inspiration :-) Add an attribute to the column definitions in the GridView: ValidationTransitionMode= Default | ForceValidationOfAllVisibleCellsInColumn | ForceValidationOfAllVisibleCells Default: No change from existing functionality. ForceValidationOfAllVisibleCellsInColumn: Whenever a validation result of a cell changes (from no_error to error OR from error to no_error) all the visible cells in the column will be re-validated. This would do the trick to enforce uniqness in a column with a custom ValidationAttribute. ForceValidationOfAllVisibleCells: Whenever a validation result of a cell changes (from no_error to error OR from error to no_error) all the visible cells of the complete grid will be re-validated. To be used by people with more complex validation algorithms depending on values in other columns as well. Steps to visualize the current problem. ◦Run the example (https://www.telerik.com/clientsfiles/375715_328546-TestApp-new.zip ) ◦When the application is running, reduce the window height (from the bottom) so that the scroll bar is visible and the top visible row shows “last name”=”Rockhead 0” and the bottom visible row shows “Rockhead 4”. ◦Change last name “Smith 3” to “Smith 1”. ◦Now there is a red border around the cell we edited (as expected) but nothing happens to row 2 (First name=Jane1). ◦Scroll to the bottom and back up to the top. ◦Now there is also an error on row 2 (First name = Jane1). ◦Change “Smith 1” back to “Smith 3” (on the row where First name=Jane 3). ◦The error on the cell edited is now removed, BUT the error on row 2 (Jane 1) is still visible even as all values in the Last name column is now unique. I got some very good support and a suggestion to modify the control template, but it would still be nice to be able to control the validation execution of cells, other than the current cell. Complete information can be found in the forum thread: https://www.telerik.com/forums/enforce-unique-content-in-a-column-using-mvvm#4qSllj_EKkecS6ZtctdwAw Regards /Stefan
UI can still accept more inputs even if item has been selected in SelectionMode="Single" Please check the screenshot.
The current workaround is to handle the Loaded event like so: private void RadMultiColumnComboBox_Loaded(object sender, RoutedEventArgs e) { this.combo.DropDownWidth = this.combo.DropDownMinWidth; }