I want to change the width of the label part of DataFormDataField. The correct place to edit should be the controls ControlTemplate:
<Grid.ColumnDefinitions> <ColumnDefinition Width="*"/><!-- Label --> <ColumnDefinition Width="2*"/><!-- Editor --> <ColumnDefinition Width="24"/><!-- ? Icon --></Grid.ColumnDefinitions>I want this to be something like:
<Grid.ColumnDefinitions> <ColumnDefinition Width="{Binding LabelWidth}" /><!-- LabelWidth = Attached property? --> <ColumnDefinition Width="2*"/> <ColumnDefinition Width="24"/></Grid.ColumnDefinitions>
The width should not be a fix value in the ControlTemplate. It should be variable so different DataForms can have different label widths. Is that possible?
Johannes
Hi all,
I am using the RadRichTextBox to display a docx file in ReadOnly mode.
By default, the RadRichTextBox shows a gray background behind the page. I would like to change this from gray to black, but I cannot figure out how. I would rather not include a theme from telerik in my assembly as this is the only visual change I need to make.
Just to be clear, I want to change the background behind the page, not the color of the page itself.
Thanks

After looking at the CRM demo I decided to implement a similar type of functionality where based on a bool state the grid would show either a few columns or all columns
<telerik:RadGridView helpers:GridViewColumnHelper.HideNonImportantColumns="{Binding IsInOverviewState}"
ItemsSource="{Binding Contacts}" ColumnWidth="*"
I am using Prism, everything works fine if I set a Minimum Height and Width of the main Shell and set the WindowState to normal. However, if I start the application maximized without these settings, when the grid is loaded, although it shows the right number of columns the width of the grid is incorrect (too big), if I slightly adjust the size of the window everything sorts itself out.
This is the grid definition
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="2*"/>
</Grid.ColumnDefinitions>
if you see the attached files you will see what I mean.
Thanks for any help in advance.
I have a GridView that has 3 columns. However, the host Grid needs to be just the width of the 1st column. I have bound the column's Width Property to my Model View as shown:
<telerik:GridViewDataColumn Header="Name" DataMemberBinding="{Binding Name}" Width="{Binding NameColumnWidth}" IsReadOnly="True" />However, the Cell should resize only based on the content size so it is defined as SizeToCells:
private GridViewLength _nameColumnWidth = new GridViewLength(0, GridViewLengthUnitType.SizeToCells);[Display( AutoGenerateField=false)][System.Xml.Serialization.XmlIgnore]public GridViewLength NameColumnWidth{ get { return _nameColumnWidth; } set { if (_nameColumnWidth != value) { _nameColumnWidth = value; notifyPropertyChanged("NameColumnWidth"); } }}How can I set the grid width to match the width of the name column's width? Is there a converter that takes the AutoSize value from the column and converts it to Pixels? Or, can I set the System.Windows.GridLength = NameColumnWidth? Can I do this another way if I don't use SizeToCells?
<telerik:RadDocking x:Name="radDocking" PanesSource="{Binding Panes}"> <telerik:RadDocking.Resources> <Style x:Key="RadPaneCustomStyle" TargetType="{x:Type telerik:RadPane}" BasedOn="{StaticResource RadPaneStyle}"> <Setter Property="Header" Value="{Binding Header}" /> <Setter Property="ToolTip" Value="{Binding ToolTip}" /> <Setter Property="IsHidden" Value="{Binding IsHidden, Mode=TwoWay}" /> <Setter Property="IsActive" Value="{Binding IsActive, Mode=TwoWay}" /> <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" /> </Style> <Style TargetType="{x:Type telerik:RadPane}" BasedOn="{StaticResource RadPaneCustomStyle}"> <Setter Property="CanDockInDocumentHost" Value="True" /> </Style> <Style TargetType="{x:Type telerik:RadDocumentPane}" BasedOn="{StaticResource RadPaneCustomStyle}"> <Setter Property="CanDockInDocumentHost" Value="True" /> </Style> </telerik:RadDocking.Resources> <telerik:RadDocking.DockingPanesFactory> <docking:CustomDockingPanesFactory /> </telerik:RadDocking.DockingPanesFactory> <telerik:RadDocking.CurrentSaveLoadLayoutHelper> <docking:CustomSaveLoadLayoutHelper /> </telerik:RadDocking.CurrentSaveLoadLayoutHelper> <telerik:RadSplitContainer InitialPosition="DockedLeft"> <telerik:RadPaneGroup x:Name="leftGroup" telerik:RadDocking.SerializationTag="leftGroup" /> </telerik:RadSplitContainer> <telerik:RadSplitContainer InitialPosition="DockedRight"> <telerik:RadPaneGroup x:Name="rightGroup" telerik:RadDocking.SerializationTag="rightGroup" /> </telerik:RadSplitContainer> <telerik:RadSplitContainer InitialPosition="DockedBottom"> <telerik:RadPaneGroup x:Name="bottomGroup" telerik:RadDocking.SerializationTag="bottomGroup" /> </telerik:RadSplitContainer> </telerik:RadDocking>public void SaveLayout(){ var docking = DockingManager as RadDocking; using (var stream = File.Open(GetLayoutFilePath(State), FileMode.Create, FileAccess.Write, FileShare.ReadWrite)) { docking.SaveLayout(stream); }}public void LoadLayout(WorkspaceState state){ var docking = DockingManager as RadDocking; using (var stream = File.Open(GetLayoutFilePath(State), FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { docking.LoadLayout(stream); }}System.InvalidOperationException was unhandled HResult=-2146233079 Message=Cannot modify the logical children for this node at this time because a tree walk is in progress. Source=PresentationFramework StackTrace: at System.Windows.FrameworkElement.RemoveLogicalChild(Object child) at MS.Internal.Controls.InnerItemCollectionView.ClearModelParent(Object item) at MS.Internal.Controls.InnerItemCollectionView._RemoveAt(Int32 index, Int32 indexR, Object item) at MS.Internal.Controls.InnerItemCollectionView.Remove(Object item) at System.Windows.Controls.ItemCollection.Remove(Object removeItem) at Telerik.Windows.Controls.RadPaneGroup.CloseSinglePane(RadPane pane) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\Docking\Docking\Docking\RadPaneGroup.cs:line 1522 at Telerik.Windows.Controls.RadPaneGroup.ClosePane(RadPane pane) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\Docking\Docking\Docking\RadPaneGroup.cs:line 653 at Telerik.Windows.Controls.RadDocking.HidePane(RadPane pane) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\Docking\Docking\Docking\RadDocking.cs:line 430 at Telerik.Windows.Controls.RadPane.Close() in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\Docking\Docking\Docking\RadPane.cs:line 1461 at Telerik.Windows.Controls.RadPane.OnIsHiddenChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\Docking\Docking\Docking\RadPane.cs:line 1226 at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args) at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType) at System.Windows.StyleHelper.ApplyStyleOrTemplateValue(FrameworkObject fo, DependencyProperty dp) at System.Windows.StyleHelper.InvalidateContainerDependents(DependencyObject container, FrugalStructList`1& exclusionContainerDependents, FrugalStructList`1& oldContainerDependents, FrugalStructList`1& newContainerDependents) at System.Windows.StyleHelper.DoStyleInvalidations(FrameworkElement fe, FrameworkContentElement fce, Style oldStyle, Style newStyle) at System.Windows.StyleHelper.UpdateStyleCache(FrameworkElement fe, FrameworkContentElement fce, Style oldStyle, Style newStyle, Style& styleCache) at System.Windows.FrameworkElement.OnStyleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e) at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args) at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType) at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp, Boolean preserveCurrentValue) at System.Windows.FrameworkElement.UpdateStyleProperty() at System.Windows.TreeWalkHelper.InvalidateStyleAndReferences(DependencyObject d, ResourcesChangeInfo info, Boolean containsTypeOfKey) at System.Windows.TreeWalkHelper.OnResourcesChanged(DependencyObject d, ResourcesChangeInfo info, Boolean raiseResourceChangedEvent) at System.Windows.FrameworkElement.OnAncestorChangedInternal(TreeChangeInfo parentTreeState) at System.Windows.TreeWalkHelper.OnAncestorChanged(DependencyObject d, TreeChangeInfo info, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at MS.Internal.PrePostDescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.VisitNode(FrameworkElement fe, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.WalkLogicalChildren(FrameworkElement feParent, FrameworkContentElement fceParent, IEnumerator logicalChildren) at System.Windows.DescendentsWalker`1.WalkFrameworkElementLogicalThenVisualChildren(FrameworkElement feParent, Boolean hasLogicalChildren) at System.Windows.DescendentsWalker`1.IterateChildren(DependencyObject d) at System.Windows.DescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at MS.Internal.PrePostDescendentsWalker`1._VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.VisitNode(FrameworkElement fe, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.VisitNode(DependencyObject d, Boolean visitedViaVisualTree) at System.Windows.DescendentsWalker`1.WalkLogicalChildren(FrameworkElement feParent, FrameworkContentElement fceParent, IEnumerator logicalChildren) at System.Windows.DescendentsWalker`1.WalkFrameworkElementLogicalThenVisualChildren(FrameworkElement feParent, Boolean hasLogicalChildren) at System.Windows.DescendentsWalker`1.IterateChildren(DependencyObject d) at System.Windows.DescendentsWalker`1.StartWalk(DependencyObject startNode, Boolean skipStartNode) at MS.Internal.PrePostDescendentsWalker`1.StartWalk(DependencyObject startNode, Boolean skipStartNode) at System.Windows.TreeWalkHelper.InvalidateOnTreeChange(FrameworkElement fe, FrameworkContentElement fce, DependencyObject parent, Boolean isAddOperation) at System.Windows.FrameworkElement.ChangeLogicalParent(DependencyObject newParent) at System.Windows.FrameworkElement.AddLogicalChild(Object child) at System.Windows.LogicalTreeHelper.AddLogicalChild(FrameworkElement parentFE, FrameworkContentElement parentFCE, Object child) at MS.Internal.Controls.InnerItemCollectionView.SetModelParent(Object item) at MS.Internal.Controls.InnerItemCollectionView.Add(Object item) at System.Windows.Controls.ItemCollection.Add(Object newItem) at Telerik.Windows.Controls.RadDocking.AddSplitContainer(RadSplitContainer radSplitContainer) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\Docking\Docking\Docking\RadDocking.cs:line 309 at Telerik.Windows.Controls.Docking.DockingLayoutFactory.LoadDocking(XmlReader reader) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\Docking\Docking\DockingLayoutFactory.cs:line 236 at Telerik.Windows.Controls.RadDocking.LoadLayout(Stream source, Boolean raiseEventsIfNoSerializationTag) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\Docking\Docking\Docking\RadDocking.Layout.cs:line 77 at Telerik.Windows.Controls.RadDocking.LoadLayout(Stream source) in c:\TB\105\WPF_Scrum\Release_WPF\Sources\Development\Controls\Docking\Docking\Docking\RadDocking.Layout.cs:line 58 at GameEd.IDE.Services.WorkspaceService.LoadLayout(WorkspaceState state) in d:\TFS\GameEd-Telerik\IDE\GameEd.IDE\Services\WorkspaceService.Layout.cs:line 107 at GameEd.IDE.Services.WorkspaceService.LoadLayout() in d:\TFS\GameEd-Telerik\IDE\GameEd.IDE\Services\WorkspaceService.Layout.cs:line 96 at Catel.MVVM.Command`2.Execute(TExecuteParameter parameter, Boolean ignoreCanExecuteCheck) at Catel.MVVM.Command`2.Execute(TExecuteParameter parameter) at Catel.MVVM.Command`2.Execute(Object parameter) at MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated) at System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.DispatcherOperation.InvokeImpl() at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Windows.Threading.DispatcherOperation.Invoke() at System.Windows.Threading.Dispatcher.ProcessQueue() at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) at System.Windows.Threading.Dispatcher.Run() at System.Windows.Application.RunDispatcher(Object ignore) at System.Windows.Application.RunInternal(Window window) at System.Windows.Application.Run(Window window) at System.Windows.Application.Run() at GameEd.App.Main() in d:\TFS\GameEd-Telerik\GameEd\obj\Debug\obj\Debug\decoratedxaml\App.g.cs:line 0 at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() InnerException: I have stumbled upon an issue where I only want the user to be able to edit the lower half of a matrix (It is a matrix that is symmetrical across the diagonal). I am creating a datatable based on a 2d array.
the grid is defined like this:
<telerik:RadGridView x:Name="matrixView" ItemsSource="{Binding MatrixTable}" CanUserDeleteRows="False" CanUserInsertRows="False" CanUserReorderColumns="False" CanUserSortColumns="False" ShowGroupPanel="False" GridLinesVisibility="Both" SelectionUnit="Cell" Width="AUto" Height="Auto"></telerik:RadGridView>And then I have the following viewmodel:
public class MatrixViewModel { public DataTable MatrixTable { get; set; } public MatrixViewModel(double[,] matrix) { this.MatrixTable = BuildTable(matrix); } private DataTable BuildTable(double[,] matrix) { var table = new DataTable(); table.Columns.Add("Name", typeof(string)); for (int col = 0; col < matrix.GetLength(0); col++) { table.Columns.Add(col.ToString(), typeof(double)); } for (int i = 0; i < matrix.GetLength(0); i++) { var row = table.NewRow(); row[0] = i.ToString(); for (int j = 0; j <= i; j++) { row[j + 1] = matrix[i, j]; } table.Rows.Add(row); } return table; } }NullvalueToBoolean is defined as follows:
[ValueConversion(typeof(object), typeof(Boolean))] public class NullValueToBoolean : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { return value == null; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } }And finally the codebehind:
public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.DataContext = new MatrixViewModel(new double[,]{ {1,0,0}, {0.25,1,0}, {0.25,0.75,1} }); this.matrixView.AutoGeneratingColumn += matrixView_AutoGeneratingColumn; } void matrixView_AutoGeneratingColumn(object sender, GridViewAutoGeneratingColumnEventArgs e) { var column = (GridViewDataColumn)e.Column; column.IsFilterable = false; if (column.DataType == typeof(double?)) { column.IsReadOnlyBinding = new Binding(column.DataMemberBinding.Path.Path) { Converter = new NullValueToBoolean() }; } else { column.IsReadOnly = true; } } } The code produces the following output when I try to edit one of the cells that are not readonly:
System.Windows.Data Error: 40 : BindingExpression path error: '0' property not found on 'object' ''DataRow' (HashCode=9659819)'. BindingExpression:Path=0; DataItem='DataRow' (HashCode=9659819); target element is 'TextBox' (Name=''); target property is 'Text' (type 'String')
However, if I remove the code that sets the ReadOnlyBinding, editing works fine. Do you have a suggestion on how to fix/avoid this issue? Maybe there is a better way to solve this problem with the Telerik UI for WPF?
i m trying reload my diagram. Saving is going well but if i m try load data from xml string shapes are loaded correctly but there are no connections between shapes. I m using ObservableGraphSourceBase<GraphNode,Link> as graph source and it inherit ISerializableGraphSource interface. During the debug i ve found out that method DeserializeLink is never call. Could you be so kind and give some advice how to figure it out.
Thank you very much.
Best regards
Jakub
ps: here my serialization class
001.public partial class KnihyXmlGraphSource : ISerializableGraphSource002. {003. private List<GraphNode> SerializedNodes = new List<GraphNode>();004. public void SerializeNode(object model, SerializationInfo info)005. {006. GraphNode node = model as GraphNode;007. 008. string pom = node.ToString();009. info["Content"] = node.Content;010. info["ShapeType"] = node.ToString();011. info["Id"] = node.GetID();012. 013. }014. 015. public void SerializeLink(ILink link, SerializationInfo info)016. {017. var myLink = link as Link;018. if (myLink.Source != null)019. {020. info["Source"] = myLink.Source.GetID();021. }022. if (myLink.Target != null)023. {024. info["Target"] = myLink.Target.GetID();025. }026. if (myLink.Type != null)027. {028. info["Type"] = myLink.Type;029. }030. }031. 032. public ILink DeserializeLink(IConnection connection, SerializationInfo info)033. {034. Link link = new Link();035. string sourceID = string.Empty;036. string targetID = string.Empty;037. 038. 039. if (info["Target"] != null)040. {041. targetID = info["Target"].ToString();042. }043. if (info["Source"] != null)044. {045. sourceID = info["Source"].ToString();046. }047. if (info["Type"] != null)048. {049. switch (info["Type"].ToString())050. {051. case Constants.Type1:052. link.Type = LinkType.Typ1;053. break;054. case Constants.Type2:055. link.Type = LinkType.Typ2;056. break;057. default:058. link.Type = LinkType.Typ3;059. break;060. }061. }062. GraphNode source = SerializedNodes.FirstOrDefault(x => x.GetID().Equals(sourceID));063. if (source != null)064. {065. link.Source = source;066. }067. 068. GraphNode target = SerializedNodes.FirstOrDefault(x => x.GetID().Equals(targetID));069. if (target != null)070. {071. link.Target = target;072. }073. 074. if (info["Type"] != null)075. {076. string type = info["Source"].ToString();077. switch (type)078. {079. case Constants.Type1:080. link.Type = LinkType.Typ1;081. break;082. case Constants.Type2:083. link.Type = LinkType.Typ2;084. break;085. case Constants.Type3:086. link.Type = LinkType.Typ3;087. break;088. default:089. break;090. }091. }092. return link;093. }094. 095. public object DeserializeNode(IShape shape, SerializationInfo info)096. {097. GraphNode node = new GraphNode();098. 099. string pom = string.Empty;100. if (info["ShapeType"] != null)101. {102. pom = (info["ShapeType"].ToString());103. pom = pom.Substring(23);104. switch (pom)105. {106. case Constants.DescriptionNode:107. node = new DescriptionNode();108. node.shape = MindmapItem.ShapeTypes.Description;109. break;110. case Constants.AuthorNode:111. node = new AuthorNode();112. node.shape = MindmapItem.ShapeTypes.Author;113. break;114. case Constants.GenreNode:115. node = new GenreNode();116. node.shape = MindmapItem.ShapeTypes.Genre;117. break;118. case Constants.BookDescriptionNode:119. node = new BookDescriptionNode();120. node.shape = MindmapItem.ShapeTypes.BookDescription;121. break;122. default:123. break;124. }125. }126. 127. if (info["Position"] != null)128. {129. node.Position = Utils.ToPoint(info["Position"].ToString()).Value;130. }131. 132. if (info["Content"] != null)133. {134. node.Content = info["Content"].ToString();135. }136. 137. 138. SerializedNodes.Add(node);139. return node;140. }141. }
Hello,
this dialog should have a fixed size for the column width selector: as it doesn't have one, the width of the dialog changes when we change the size.
The same happens when we change the value in any of the up/down that are in the dialog.
This is not a very good user experience.