Telerik Forums
UI for WPF Forum
1 answer
431 views

In VS2019 theme the highlight color for selected text in several controls is so light that is very difficult to tell if the text is selected or not.

You can see this in controls like MS Textbox or RadWaterMarkTextbox,

It looks like that the color used is the accentcolor property of the theme with certain opacity. The problem is that i don't know how to change this opacity.

I'm attaching two screen captures showing this, both of them from Telerik Color Theme Generator.

How can I change this color?

 

Stenly
Telerik team
 answered on 22 Feb 2022
2 answers
140 views

Hi guys,

I use a ScheduleView in Timeline Mode to display when users had vacations.
My problem now is, that the size of the Timeline-Area with the columns doesn't grow.
If the available space is smaller a scrollbar appears (what is good).
But if the available space is bigger, the columns get smaller instead that the space is used.
I tried to play with the MaxTimeRulerExtent property but this doesn't seem to have an effect.

Is there something I'm missing?

Greetings Benedikt

Masha
Telerik team
 answered on 22 Feb 2022
0 answers
135 views

Hello Support team.
We got following exception on changing ItemCollection property of a custom control.

Version
Assembly Telerik.Windows.Controls, Version=2022.1.117.45, Culture=neutral, PublicKeyToken=5803cfa389c90ce7

Message
System.NullReferenceException: 'Object reference not set to an instance of an object.'

StackTrace

   at Telerik.Windows.Controls.GridView.Selection.CellInfoCollectionCellValidator.IsPublicCellValid(GridViewCellInfo info)
   at Telerik.Windows.Controls.GridView.Selection.CellInfoCollection.Add(GridViewCellInfo cellInfo)
   at Telerik.Windows.Controls.GridView.Selection.CellSelectionHandler.CoerceSelectedCellsIfNeeded(NotifyCellInfoCollectionChangedEventArgs e)
   at Telerik.Windows.Controls.GridView.Selection.CellSelectionHandler.InternalSelectedCells_CellsChanged(Object sender, NotifyCellInfoCollectionChangedEventArgs e)
   at Telerik.Windows.Controls.GridView.Selection.CellInfoCollection.OnCellsChanged(CellInfoCollectionChangeType changeType, CellInfoCollection addedCells, CellInfoCollection removedCells)
   at Telerik.Windows.Controls.GridView.Selection.CompositeSelectionHandler.UpdateSelectedCells(IList`1 items, Boolean isSelected)
   at Telerik.Windows.Controls.GridView.Selection.CompositeSelectionHandler.OnColumnsCollectionChanged(Object sender, NotifyCollectionChangedEventArgs e)
   at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   at System.Collections.ObjectModel.ObservableCollection`1.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at Telerik.Windows.Controls.GridViewColumnCollectionInternal.OnCollectionChanged(NotifyCollectionChangedEventArgs e)
   at System.Collections.ObjectModel.ObservableCollection`1.InsertItem(Int32 index, T item)
   at Telerik.Windows.Controls.GridViewColumnCollectionInternal.InsertItem(Int32 index, GridViewColumn item)
   at Telerik.Windows.Controls.GridView.GridViewDataControl.AddAutoGeneratedColumns()
   at Telerik.Windows.Controls.GridView.GridViewDataControl.OnAutoGenerateColumnsChanged(DependencyObject dependencyObject, 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.StyleHelper.InvalidatePropertiesOnTemplateNode(DependencyObject container, FrameworkObject child, Int32 childIndex, FrugalStructList`1& childRecordFromChildIndex, Boolean isDetach, FrameworkElementFactory templateRoot)
   at System.Windows.StyleHelper.ClearTemplateChain(HybridDictionary[] instanceData, FrameworkElement feContainer, FrameworkContentElement fceContainer, List`1 templateChain, FrameworkTemplate oldFrameworkTemplate)
   at System.Windows.StyleHelper.ClearGeneratedSubTree(HybridDictionary[] instanceData, FrameworkElement feContainer, FrameworkContentElement fceContainer, FrameworkTemplate oldFrameworkTemplate)
   at System.Windows.StyleHelper.DoTemplateInvalidations(FrameworkElement feContainer, FrameworkTemplate oldFrameworkTemplate)
   at System.Windows.Controls.Control.OnTemplateChanged(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.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.FrameworkElement.InvalidateTreeDependentProperties(TreeChangeInfo parentTreeState, Boolean isSelfInheritanceParent, Boolean wasSelfInheritanceParent)
   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.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.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.OnVisualParentChanged(DependencyObject oldParent)
   at System.Windows.Media.Visual.FireOnVisualParentChanged(DependencyObject oldParent)
   at System.Windows.Media.Visual.RemoveVisualChild(Visual child)
   at System.Windows.Media.VisualCollection.DisconnectChild(Int32 index)
   at System.Windows.Media.VisualCollection.RemoveRange(Int32 index, Int32 count)
   at System.Windows.Controls.UIElementCollection.RemoveRangeInternal(Int32 index, Int32 count)
   at System.Windows.Controls.Panel.OnItemsChangedInternal(Object sender, ItemsChangedEventArgs args)
   at System.Windows.Controls.Panel.OnItemsChanged(Object sender, ItemsChangedEventArgs args)
   at System.Windows.Controls.ItemContainerGenerator.OnItemRemoved(Object item, Int32 itemIndex)
   at System.Windows.Controls.ItemContainerGenerator.OnCollectionChanged(Object sender, NotifyCollectionChangedEventArgs args)
   at System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
   at System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args)
   at System.Collections.Specialized.NotifyCollectionChangedEventHandler.Invoke(Object sender, NotifyCollectionChangedEventArgs e)
   at System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   at System.Windows.WeakEventManager.ListenerList`1.DeliverEvent(Object sender, EventArgs e, Type managerType)
   at System.Windows.WeakEventManager.DeliverEvent(Object sender, EventArgs args)
   at System.Windows.Data.CollectionView.OnCollectionChanged(NotifyCollectionChangedEventArgs args)
   at MS.Internal.Controls.InnerItemCollectionView._RemoveAt(Int32 index, Int32 indexR, Object item)
   at System.Windows.Controls.ItemCollection.Remove(Object removeItem)
Andrey Burykin
Top achievements
Rank 1
 asked on 21 Feb 2022
1 answer
544 views

Hi,

I have developer license for Telerik UI for WPF which was purchased this week. But when i try and search for specific controls i do not get the latest builds displayed.

I have attached the screenshot where it shows only version 2020.1.218 even though there is a new release in 2022.

And also why does it show only Trial and not the actual package.

Uthappa
Top achievements
Rank 1
Iron
 answered on 21 Feb 2022
1 answer
112 views

Hello Telerik Team,

I was wondering how one would implement error bars in a ScatterPointSeries that look similar to this: https://demos.telerik.com/kendo-ui/line-charts/error-bars

There is a very similar question that has been asked before (https://www.telerik.com/forums/how-to-plot-error-bar-for-standard-deviation). Unfortunately, it doesn't look like the feature request mentioned there is going to be implemented anytime soon. As a workaround it was suggested to use a RangeBarSeries with a custom PointTemplate, but that will not work for me, since it is a Cathegorical series and I need to plot the data points at any arbitrary xy coordinate, which is my reason to use the ScatterPointSeries.

I was researching further and found someone mentioning a custom renderer but it seems that is only applicable for windows forms.

I also found this site https://docs.telerik.com/devtools/wpf/controls/radchart/how-to/howto-create-scatter-errorbars-and-boxplot-series but it seems to only work for RadChart and not RadCartesianChart.

Any pointers in the right direction would be greatly appreciated.

 

Best Regards,
Robin

Martin Ivanov
Telerik team
 answered on 21 Feb 2022
1 answer
136 views

Hi,

It is possible for Popup Filtering to have the same behavior as for winforms and excel, which when typing in the textbox already filtered the list. As per attached image.

Thanks.

Martin Ivanov
Telerik team
 answered on 21 Feb 2022
1 answer
130 views

Hi,
I have a RadDocking with a Document.host and 2 RadSplitcontainer. Every parts of control has its own Header and they are shown correctly, but with different style as you could see in figure:

I haven't seen any settings in xaml about the style and I would like to use everywhere the left style.

This is the DataTemplate used:

<DataTemplate x:Key="{x:Static r:ResourcesKeys.TabContentSpectral}" DataType="WpfPlot">
				<t:ProportionalStackPanel Orientation="Vertical">
					<t:RadToolBar t:ProportionalStackPanel.ElementHeight="32">
						<t:RadButton Command="{Binding ResetCommand}"									 
							ToolTip="{DynamicResource ResourceKey={x:Static r:ResourcesKeys.ResetMapTooltip}}">
							<Image Source="/DeltaOhm.NsModules;component/Images/refresh.png"
																		   Style="{StaticResource ResourceKey=TreeviewImageSize}"/>
						</t:RadButton>
						<t:RadButton x:Name="ToolbarSetAxisScale"
							ToolTip="{DynamicResource ResourceKey={x:Static r:ResourcesKeys.MISetAxisScale}}"
							Loaded="ToolbarSetAxisScale_Loaded">
							<Image Source="/DeltaOhm.NsModules;component/Images/ToolbarSetAxisScale.png"
																		   Style="{StaticResource ResourceKey=TreeviewImageSize}"/>
						</t:RadButton>
						<t:RadButton
							ToolTip="{DynamicResource ResourceKey={x:Static r:ResourcesKeys.ColorPaletteTooltip}}"
							Loaded="RadPathButton_Loaded">
							<Image Source="/DeltaOhm.NsModules;component/Images/ToolbarColorPalette.png"
																		   Style="{StaticResource ResourceKey=TreeviewImageSize}"/>
						</t:RadButton>
						<t:RadButton
							x:Name="SonogrammaMinimi"
							ToolTip="{DynamicResource ResourceKey={x:Static r:ResourcesKeys.SonogrammaDeiMinimiTooltip}}"
							Command="{Binding CalcolaSpettroDeiMinimiCommand}">
							<Image Source="/DeltaOhm.NsModules;component/Images/SonogrammaDeiMinimi.png"
																		   Style="{StaticResource ResourceKey=TreeviewImageSize}"/>
						</t:RadButton>
					</t:RadToolBar>
					<t:RadDocking x:Name="DockingSpectral"
						RetainPaneSizeMode="DockingAndFloating">
						<t:RadDocking.DocumentHost>
							<t:RadPaneGroup x:Name="RadPaneGroup1">
								<t:RadPane x:Name="PaneSpectralColorMap" t:RadDocking.SerializationTag="PaneSpectralColorMap" 
										   Loaded="PaneSpectralColorMap_Loaded">
									<Grid x:Name="Grid1">
										<local:SpectralColorMapControl Loaded="SpectralColorMapControl_Loaded" TabIndex="0"
													   SizeChanged="SpectralColorMapControl_SizeChanged"/>
									</Grid>
								</t:RadPane>
							</t:RadPaneGroup>
						</t:RadDocking.DocumentHost>
						<t:RadSplitContainer
							x:Name="SpectralTimeHistory" InitialPosition="DockedBottom"
											 MinHeight="180">
							<t:RadPaneGroup >
								<t:RadPane x:Name="PaneSpectralTimeHistory" t:RadDocking.SerializationTag="PaneSpectralTimeHistory"
										   Loaded="PaneSpectralTimeHistory_Loaded">
									<Grid>
										<local:SpectralTimeHistoryControl TabIndex="1"
											Loaded="SpectralTimeHistoryControl_Loaded"	
											Frequency="{Binding FrequencySelected, Mode=TwoWay}"/>
									</Grid>
								</t:RadPane>
							</t:RadPaneGroup>
						</t:RadSplitContainer>
						<t:RadSplitContainer x:Name="SpectralHistogram" InitialPosition="DockedRight"
											 MinWidth="225">
							<t:RadPaneGroup x:Name="RadPaneGroup2">
								<t:RadPane x:Name="PaneSpectralHistogram" t:RadDocking.SerializationTag="PaneSpectralHistogram"
										   Loaded="PaneSpectralHistogram_Loaded">
									<Grid x:Name="Grid2">
										<local:SpectralHistogramControl x:Name="SpectralHistogramControl1"
											Loaded="SpectralHistogramControl_Loaded"
											TimeStamp="{Binding MainVM.TabCursori.CursorV0DT, Mode=TwoWay}"
											Intervallo="{Binding MainVM.TabCursori.CursorRange}"/>
									</Grid>
								</t:RadPane>
							</t:RadPaneGroup>
						</t:RadSplitContainer>
					</t:RadDocking>
				</t:ProportionalStackPanel>
			</DataTemplate>

 

And this is the code that binding the header (in code behind because "Plot" is a dynamic value)

		private void PaneSpectralColorMap_Loaded(object sender, RoutedEventArgs e)
		{
			if (sender is RadPane pane)
			{
				pane.SetBinding(HeaderedContentControl.HeaderProperty, new Binding("Plot.SpectralColorMapVM.Title"));
			}
		}
		private void PaneSpectralTimeHistory_Loaded(object sender, RoutedEventArgs e)
		{
			if (sender is RadPane pane)
			{
				pane.SetBinding(HeaderedContentControl.HeaderProperty, new Binding("Plot.SpectralProfileVM.Title"));
			}
		}
		private void PaneSpectralHistogram_Loaded(object sender, RoutedEventArgs e)
		{
			if (sender is RadPane pane)
			{
				pane.SetBinding(HeaderedContentControl.HeaderProperty, new Binding("Plot.SpectralHistogramVM.Title"));
			}

		}



Stenly
Telerik team
 answered on 21 Feb 2022
1 answer
213 views

Hi,

When using the Fluent theme on computers with Windows 7, the opacity of Popup Filtering interferes with its visualization, as shown in the attached image. Is it possible to change the global shape of this opacity to avoid this problem?

 

Thanks

Martin Ivanov
Telerik team
 answered on 21 Feb 2022
0 answers
1.5K+ views

Hello, I have upgraded application to .Net 6.0 ,while I trying to add DLL to toolbar then it gives following error [refer screenshot].

when I run the project it throws exception about Telerik,  as

The invocation of the constructor on type 'Telerik.Windows.Controls.RadMenu' that matches the specified binding constraints threw an exception

following inner exception

" TypeInitializationException: The type initializer for 'Telerik.Windows.Controls.TelerikLicense' threw an exception."

and

"MissingMethodException: Method not found: 'System.ActivationContext System.AppDomain.get_ActivationContext()'."

 

please suggest.

Akshay
Top achievements
Rank 1
 asked on 18 Feb 2022
0 answers
154 views

Hi,
I am creating a generic grid solution, based on the Telerik grid with dynamic data source.
This is my ItemsSource:

var data = new ObservableCollection<MyDataRow>(); //DynamicObject

Where MyDataRow is created from 2D array of various objects (MyClass, Strings, etc).

And I would like to choose template based on value (or type of object) which will be presented in the cell, but the only way, that achieved the desired result, was to add TemplateSelector which dynamicly creates a concrete datatemplate for each column/cell.
Simplified version of my Selector:

public class MyTemplateSelector : DataTemplateSelector
{
	public override System.Windows.DataTemplate SelectTemplate(object item, System.Windows.DependencyObject container)
	{
		if(container is GridViewCell gridViewCell && item != null)
		{
			int columnIndex = gridViewCell.Column.DisplayIndex;
			DataTemplate dataTemplate = null;
			MyDataRow myDataRow = item as MyDataRow;
			if (myDataRow["Column" + columnIndex] is MyClass)
			{	// Template example 1
				StringReader stringReader = new StringReader(
				@"<DataTemplate 
				xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""> 
					<TextBlock Text=""{Binding Column" + columnIndex + @".ResultText}""/> 
				</DataTemplate>");
				XmlReader xmlReader = XmlReader.Create(stringReader);
				dataTemplate = XamlReader.Load(xmlReader) as DataTemplate;
			}
			else
			{   // Template example 2
				StringReader stringReader = new StringReader(
				@"<DataTemplate 
				xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""> 
					<TextBlock Text=""{Binding Column" + columnIndex + @"}""/> 
				</DataTemplate>");
				XmlReader xmlReader = XmlReader.Create(stringReader);
				dataTemplate = XamlReader.Load(xmlReader) as DataTemplate;
			}
			if (!dataTemplates.ContainsKey(columnIndex))
			{
				dataTemplates.Add(columnIndex, dataTemplate);
			}
			return dataTemplates[columnIndex];
		}
		return null;
	}
	// Dictionary of already defined templates
	Dictionary<int, DataTemplate> dataTemplates = new Dictionary<int, DataTemplate>();
}

So in this case, there can be up to c*x number of slightly different templates:
(c - number of columns, x - number of specific templates)

Is there any more performance wise or clearer way to solve this problem?

Thank you for any help.

Radek
Top achievements
Rank 1
 asked on 17 Feb 2022
Narrow your results
Selected tags
Tags
GridView
General Discussions
Chart
RichTextBox
Docking
ScheduleView
ChartView
TreeView
Diagram
Map
ComboBox
TreeListView
Window
RibbonView and RibbonWindow
PropertyGrid
DragAndDrop
TabControl
TileView
Carousel
DataForm
PDFViewer
MaskedInput (Numeric, DateTime, Text, Currency)
AutoCompleteBox
DatePicker
Buttons
ListBox
GanttView
PivotGrid
Spreadsheet
Gauges
NumericUpDown
PanelBar
DateTimePicker
DataFilter
Menu
ContextMenu
TimeLine
Calendar
Installer and Visual Studio Extensions
ImageEditor
BusyIndicator
Expander
Slider
TileList
DataPager
PersistenceFramework
Styling
TimeBar
OutlookBar
TransitionControl
FileDialogs
Book
ToolBar
ColorPicker
TimePicker
MultiColumnComboBox
SyntaxEditor
VirtualGrid
NavigationView (Hamburger Menu)
Wizard
ExpressionEditor
WatermarkTextBox
DesktopAlert
BarCode
SpellChecker
DataServiceDataSource
EntityFrameworkDataSource
RadialMenu
ChartView3D
Data Virtualization
BreadCrumb
LayoutControl
ProgressBar
Sparkline
TabbedWindow
ToolTip
CloudUpload
ColorEditor
TreeMap and PivotMap
EntityFrameworkCoreDataSource (.Net Core)
HeatMap
Chat (Conversational UI)
VirtualizingWrapPanel
Calculator
NotifyIcon
TaskBoard
TimeSpanPicker
BulletGraph
Licensing
WebCam
CardView
DataBar
FilePathPicker
Callout
PasswordBox
SplashScreen
Localization
Rating
Accessibility
CollectionNavigator
AutoSuggestBox
Security
VirtualKeyboard
HighlightTextBlock
TouchManager
StepProgressBar
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
+? more
Top users last month
Miljana
Top achievements
Rank 2
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Bronze
Cynthia
Top achievements
Rank 1
John
Top achievements
Rank 1
Iron
Mozart
Top achievements
Rank 1
Iron
Veteran
Want to show your ninja superpower to fellow developers?
Top users last month
Miljana
Top achievements
Rank 2
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Bronze
Cynthia
Top achievements
Rank 1
John
Top achievements
Rank 1
Iron
Mozart
Top achievements
Rank 1
Iron
Veteran
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?