Telerik Forums
UI for WPF Forum
0 answers
188 views
Hello,

I need help about slider and events. Firstly, I have many events(from three different source) and I want to add these events on timeline. Then, when I change the slider, I want to go the event. (my DateTime format is: (dd/mm/yyyy HH/mm/ss)). So, Is there any controls or anything for my problem's solution.
Thanks.
Serhat
Top achievements
Rank 1
 asked on 13 Sep 2018
36 answers
526 views
Hi!

I recently started to experiment with the PivotGrid and i have to say - very cool! But i couldn't find a way to export the data to excel, is that possible? Or is there a way to iterate through all the cells so i can export them myself?

Kind regards
Michael
Dinko | Tech Support Engineer
Telerik team
 answered on 13 Sep 2018
1 answer
278 views

Hi everyone, 

 

I have a GridView with 5 grouping, lots of data. When I expand the last level of grouping, I have this weird white space. 

The issue is not present when I set the GroupRenderMode to Nested but the performance become terrible.

No difference when I change the value of AutoExpandGroups.

here is the code : 

<telerik:RadGridView x:Name="GridViewListingNumberList" GroupRenderMode="Flat"
                     VerticalAlignment="Top" VerticalContentAlignment="Top"
                     telerik:StyleManager.Theme="Windows"
                     Background="Transparent"
                     ColumnBackground="Transparent"  AlternationCount="2" SelectionUnit="FullRow"
                     ItemsSource="{Binding List.Presenter.ResultDisplay}"
                     MaxHeight="900" Margin="5,5,5,10"
                     CanUserFreezeColumns="False" AutoExpandGroups="False"
                     RowIndicatorVisibility="Collapsed"
                     AutoGenerateColumns="False"
                     IsReadOnly="True"
                     MouseDoubleClick="shareGrid_MouseDoubleClick"
                     ShowGroupPanel="true">
    <telerik:RadGridView.Columns>
        <telerik:GridViewDataColumn IsVisible="true" Header="Marché" UniqueName="MarketName" Width="auto"  DataMemberBinding="{Binding MarketName}" IsReadOnly="True" ShowColumnWhenGrouped="False">
            <telerik:GridViewDataColumn.GroupHeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Group.Key, StringFormat='Marché: {0}'}" VerticalAlignment="Center"/>
                </DataTemplate>
            </telerik:GridViewDataColumn.GroupHeaderTemplate>
        </telerik:GridViewDataColumn>
        <telerik:GridViewDataColumn IsVisible="true" Header="Payeur" UniqueName="PayerName" Width="auto"  DataMemberBinding="{Binding PayerName}" IsReadOnly="True" ShowColumnWhenGrouped="False">
            <telerik:GridViewDataColumn.GroupHeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Group.Key, StringFormat='Payeur: {0}'}" VerticalAlignment="Center"/>
                </DataTemplate>
            </telerik:GridViewDataColumn.GroupHeaderTemplate>
        </telerik:GridViewDataColumn>
        <telerik:GridViewDataColumn IsVisible="true" Header="Périodicité" UniqueName="PeriodicityName"  Width="auto"  DataMemberBinding="{Binding PeriodicityName}" IsReadOnly="True" ShowColumnWhenGrouped="False">
            <telerik:GridViewDataColumn.GroupHeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Group.Key, StringFormat='Période: {0}'}" VerticalAlignment="Center"/>
                </DataTemplate>
            </telerik:GridViewDataColumn.GroupHeaderTemplate>
        </telerik:GridViewDataColumn>
        <telerik:GridViewDataColumn IsVisible="true" Header="Lot" UniqueName="MarketBatchName" Width="auto"  DataMemberBinding="{Binding MarketBatchName}" IsReadOnly="True" ShowColumnWhenGrouped="False">
            <telerik:GridViewDataColumn.GroupHeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Group.Key, StringFormat='Lot: {0}'}" VerticalAlignment="Center"/>
                </DataTemplate>
            </telerik:GridViewDataColumn.GroupHeaderTemplate>
        </telerik:GridViewDataColumn>
        <telerik:GridViewDataColumn IsVisible="true" Header="Société" UniqueName="CompanyName2" Width="auto" DataMemberBinding="{Binding CompanyName2}" IsReadOnly="True" ShowColumnWhenGrouped="False">
            <telerik:GridViewDataColumn.GroupHeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Group.Key, StringFormat='Société: {0}'}" VerticalAlignment="Center"/>
                </DataTemplate>
            </telerik:GridViewDataColumn.GroupHeaderTemplate>
        </telerik:GridViewDataColumn>
 
        <telerik:GridViewDataColumn Header="" Width="30"  SortMemberPath="Statut" IsReadOnly="True">
            <telerik:GridViewDataColumn.CellTemplate>
                <DataTemplate>
                    <TextBlock x:Name="OutwardTextSPState" Width="20" TextAlignment="Center">
                        <TextBlock.Style>
                            <Style TargetType="TextBlock" BasedOn="{StaticResource SmallFontStyle}">
                                <Style.Triggers>
                                    <DataTrigger Binding="{Binding Statut}" Value="TOTELETRANSMIT">
                                        <Setter Property="Text" Value="ÀT" />
                                        <Setter Property="ToolTip" Value="À TÉLÉTRANSMETTRE" />
                                        <Setter Property="Background" Value="{StaticResource HighlightBackgroundBrush}" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Statut}" Value="TELETRANSMITED">
                                        <Setter Property="Text" Value="T" />
                                        <Setter Property="ToolTip" Value="TÉLÉTRANSMISE" />
                                        <Setter Property="Background" Value="{StaticResource GreenBackgroundBrush}" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Statut}" Value="TOVALIDATE">
                                        <Setter Property="Text" Value="ÀV" />
                                        <Setter Property="ToolTip" Value="À VALIDER" />
                                        <Setter Property="Background" Value="{StaticResource RedBackgroundBrush}" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Statut}" Value="PRINTED">
                                        <Setter Property="Text" Value="I" />
                                        <Setter Property="ToolTip" Value="IMPRIMÉE" />
                                        <Setter Property="Background" Value="{StaticResource AlternateGreenBackgroundBrush}" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Statut}" Value="TOPRINT">
                                        <Setter Property="Text" Value="ÀI" />
                                        <Setter Property="ToolTip" Value="À IMPRIMER" />
                                        <Setter Property="Background" Value="{StaticResource YellowBackgroundBrush}" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Statut}" Value="PAID">
                                        <Setter Property="Text" Value="P" />
                                        <Setter Property="ToolTip" Value="PAYÉE" />
                                        <Setter Property="Background" Value="{StaticResource PurpleBackgroundBrush}" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Statut}" Value="PARTIALLYPAID">
                                        <Setter Property="Text" Value="PP" />
                                        <Setter Property="ToolTip" Value="PAYÉE PARTIELLEMENT" />
                                        <Setter Property="Background" Value="{StaticResource VeryLightPurpleBackgroundBrush}" />
                                    </DataTrigger>
                                    <DataTrigger Binding="{Binding Statut}" Value="CREDIT">
                                        <Setter Property="Text" Value="A" />
                                        <Setter Property="ToolTip" Value="CREDIT" />
                                        <Setter Property="Background" Value="{StaticResource BlueGreenBackgroundBrush}" />
                                    </DataTrigger>
                                </Style.Triggers>
                            </Style>
                        </TextBlock.Style>
                    </TextBlock>
                </DataTemplate>
            </telerik:GridViewDataColumn.CellTemplate>
        </telerik:GridViewDataColumn>
        <telerik:GridViewDataColumn Header="" Width="auto" DataMemberBinding="{Binding Number}" IsReadOnly="True"/>
        <telerik:GridViewDataColumn Header="Nom/Prénom" Width="auto" MinWidth="100" DataMemberBinding="{Binding CustomerFullName}" IsReadOnly="True"/>
        <telerik:GridViewDataColumn Header="Date"       Width="auto" MinWidth="100" DataMemberBinding="{Binding Date, StringFormat={}{0:dd/MM/yyyy}}" IsReadOnly="True" SortingState="Ascending"/>
        <telerik:GridViewDataColumn Header="Montant"    Width="auto" MinWidth="100" DataMemberBinding="{Binding Amount, StringFormat={}{0:C}}"            IsReadOnly="True"/>
        <telerik:GridViewDataColumn Header="Trajet"     Width="*" MinWidth="100" DataMemberBinding="{Binding Trip}"             IsReadOnly="True"/>
        <telerik:GridViewDataColumn Header="Vehicule"   Width="auto" MinWidth="100" DataMemberBinding="{Binding Vehicle}"          IsReadOnly="True"/>
        <telerik:GridViewDataColumn Header="Raison"     Width="auto" MinWidth="100" DataMemberBinding="{Binding Reason}"           IsReadOnly="True"/>
 
    </telerik:RadGridView.Columns>
 
    <telerik:RadGridView.GroupDescriptors>
        <telerik:ColumnGroupDescriptor Column="{Binding Columns[\MarketName\], ElementName=GridViewListingNumberList}"  />
        <telerik:ColumnGroupDescriptor Column="{Binding Columns[\PayerName\], ElementName=GridViewListingNumberList}"  />
        <telerik:ColumnGroupDescriptor Column="{Binding Columns[\PeriodicityName\], ElementName=GridViewListingNumberList}"  />
        <telerik:ColumnGroupDescriptor Column="{Binding Columns[\MarketBatchName\], ElementName=GridViewListingNumberList}"  />
        <telerik:ColumnGroupDescriptor Column="{Binding Columns[\CompanyName2\], ElementName=GridViewListingNumberList}"  />
    </telerik:RadGridView.GroupDescriptors>
</telerik:RadGridView>

 

v.2018.1.220.45

 

Any Idea ?

 

thanks.

https://i.imgur.com/XGtKWeK.png

here , a gif of the issue : https://imgur.com/a/mNGwYA7

 

Vladimir Stoyanov
Telerik team
 answered on 12 Sep 2018
3 answers
312 views

Hi Team,

I was using Q2 2010 SP2 - 2010.2.924.40 version and in that I was using RadGridview ScrollIntoView method to scroll to the last record.

It was only taking around 30 seconds for 1000 records

Now we updated to latest version  2018.2.515.45 version now with same code it is taking more than 1 minutes to autoscroll to last record.

Xaml Code: 

<telerik:RadGridView Grid.Row="1" Grid.Column="0" Name="EmployeeSheetGrid" Height="300" CanUserInsertRows="False" ItemsSource="{Binding Path=WorkItems}" ColumnWidth="*" AutoGenerateColumns="False" ScrollMode="RealTime" CanUserReorderColumns="False" DataLoadMode="Synchronous" CanUserSortColumns="False" CanUserFreezeColumns="False" ShowGroupPanel="False" IsReadOnly="True" >

Xaml.cs record.

 public class Employee { public int EmpId { get; set; } public string Name { get; set; } public string Address { get; set; } public string State { get; set; } public String Country { get; set; } public DateTime CurrentDate { get; set; } }

EmployeeList having 1000 records 

employeeList.OrderBy(i => i.EmpId).ToList().ForEach(s => { EmployeeSheetGrid.ScrollIntoView(s); });

 

Please provide solution for the issue.

Thanks

 

 

 

Dilyan Traykov
Telerik team
 answered on 12 Sep 2018
5 answers
796 views
I have a long header for my column, I want to allow the header to span more than one row. Essentially I want to be able Text Wrap the header. Setting: TextWrapping="Wrap", in GridViewDataColumn declaration doesn't appear to work.

Sorry the title of the post should be Multi Line Row Headers. Can't figure out a way to change the port title. Sorry for the confusion.
Dilyan Traykov
Telerik team
 answered on 12 Sep 2018
3 answers
198 views

I am using ChartView Telerik WPF Library. I want the points to get bigger when the user hovers over them. But for some reason it is not working as expected. The Ellipse gets bigger but it does not resize correctly. But I don't understand why. The other properties as border color and thickness are working correctly. Can someone tell me what am I missing here ?

This is how it looks currently(Look at the gif)

Here is the source code:

private FrameworkElementFactory AddPointsToSeries(KeyValuePair<ChartSerie, List<ChartDataPoint>> chartSeries, int colorPaletteIndex)
    {
        var seriesPredefinedColor = this.ChartBase.Palette.GlobalEntries[colorPaletteIndex].Fill;
 
        FrameworkElementFactory frameworkElement = new FrameworkElementFactory(typeof(Ellipse));
        frameworkElement.SetValue(Ellipse.FillProperty, ColorService.BrushFromHex(chartSeries.Key.ColorHex) ?? seriesPredefinedColor);
        frameworkElement.SetValue(Ellipse.HeightProperty, 9.0D);
        frameworkElement.SetValue(Ellipse.WidthProperty, 9.0D);
 
 
        frameworkElement.AddHandler(Ellipse.MouseEnterEvent, new MouseEventHandler((sender, args) =>
           {
               Ellipse ellipse = (Ellipse)sender;
               ellipse.Stroke = ColorService.BrushFromHex(ColorService.BlendHex((chartSeries.Key.ColorHex ?? ColorService.BrushToHex(seriesPredefinedColor)), "#000000", 0.4));
 
               // this is not correctly applied!
               ellipse.Width = 15;
               ellipse.Height = 15;
 
               ellipse.StrokeThickness = 2;
           }));
 
        frameworkElement.AddHandler(Ellipse.MouseLeaveEvent, new MouseEventHandler((sender, args) =>
           {
               Ellipse ellipse = (Ellipse)sender;
               ellipse.Height = 8;
               ellipse.Width  = 8;
 
               ellipse.Stroke = null;
           }));
 
 
        return frameworkElement;
    }
 
    // Here I create the Line Series and here I use the AddPointsToSeries Method
    private LineSeries CreateLineSeries(KeyValuePair<ChartSerie, List<ChartDataPoint>> chartSeries, ChartLegendSettings legendSettings,
                                        int colorPaletteIndex)
    {
        FrameworkElementFactory addPoints = AddPointsToSeries(chartSeries, colorPaletteIndex);
        var lineSerie = new LineSeries()
        {
            VerticalAxis    = CreateMultipleVerticalAxis(chartSeries, colorPaletteIndex, out var multipleVerticalAxis) ? multipleVerticalAxis : null,
            ZIndex          = 150, // the line series should always be displayed on top of other series.
            StrokeThickness = 3.5,
            LegendSettings  = (SeriesLegendSettings)legendSettings,
            Opacity         = 0.8,
            StackGroupKey = chartSeries.Key.Group,
            CombineMode   = string.IsNullOrEmpty(chartSeries.Key.Group) ? ChartSeriesCombineMode.None :
            ChartSeriesCombineMode.Stack,
 
            PointTemplate = new DataTemplate()
            {
                VisualTree = addPoints,
            },
        };
 
        // this is the color of line series
        if (chartSeries.Key.ColorHex != null)
        {
            lineSerie.Stroke = (SolidColorBrush)(new BrushConverter().ConvertFrom(chartSeries.Key.ColorHex));
        }
 
        foreach (ChartDataPoint serie in chartSeries.Value)
        {
            lineSerie.DataPoints.Add(new CategoricalDataPoint()
            {
                Category = serie.XPoint.Label,
                Value    = (double?)serie.Value,
            });
        }
 
        return lineSerie;
    }

 

Devid
Top achievements
Rank 1
 answered on 12 Sep 2018
6 answers
271 views

Hi,

The scrolling in the RADTileView control is not working out nicely, the offset on a single button click or mousewheel roll makes the page scroll more than needed.So assuming a page is displaying 25 lines a screen, after scrolling minimum it would be the 30th (i.e. not the 26 line) at the top. Thus the user would miss some content and would need to scroll back.

 

After going through the forums I have been able to fix this for the mousewheel using the code

private void ScrollViewer_MouseWheel(object sender, System.Windows.Input.MouseWheelEventArgs e)
{
    ScrollViewer scv = this.ctrlRadTileView.ChildrenOfType<ScrollViewer>().FirstOrDefault();
    scv.ScrollToVerticalOffset(scv.VerticalOffset - e.Delta);
    e.Handled = true;
}

However when the scrollbar buttons are clicked they still continue to have the wrong scroll effect. Is there any way to handle the scrollbar button clicked event or change the vertical offset property?

There is the ScrollViewer.ScrollInfo.VerticalOffset property but the scroll info object is not accessible.

Martin Ivanov
Telerik team
 answered on 11 Sep 2018
7 answers
396 views
How can I customize the Message List Part,  Its an ItemsPresenter , I want to change messages font and make the avatar little bigger. nothing is mentioned in the documentation for how to do this.
Omar
Top achievements
Rank 1
 answered on 11 Sep 2018
3 answers
99 views

In RadDock for WPF it is possible to set the DraggedElementVisualCue / DraggedElementVisualCueTemplate when using RadDocking.DragDropMode = Deferred. 

 

<ControlTemplate x:Key="DraggedElementVisualCueTemplate">
    <Grid Width="300" Height="200">
        <Border
            Margin="0 0 4 4"
            CornerRadius="1"
            BorderBrush="{TemplateBinding BorderBrush}"
            BorderThickness="{TemplateBinding BorderThickness}"
            Background="{TemplateBinding Background}" />
        <Border Margin="0 0 4 4" Padding="10">
            <TextBlock
                Text="{Binding Title}"
                Foreground="{StaticResource IconForegroundLight}"
                Margin="{TemplateBinding Padding}"
                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
        </Border>
    </Grid>
</ControlTemplate>
 
<docking:ObjectToTypeStringConverter x:Key="ObjectToTypeStringConverter"/>
 
<Style TargetType="telerik:DraggedElementVisualCue">
    <Setter Property="Foreground" Value="{StaticResource IconForegroundLight}"/>
    <Setter Property="BorderBrush" Value="{DynamicResource AccentColorBrush}"/>
    <Setter Property="Background" Value="{StaticResource HeaderBackgroundBrush}"/>
    <Setter Property="HorizontalContentAlignment" Value="Center"/>
    <Setter Property="VerticalContentAlignment" Value="Center"/>
    <Setter Property="BorderThickness" Value="2"/>
    <Setter Property="Margin" Value="10 0 0 0"/>
    <Setter Property="Padding" Value="6 2"/>
</Style>

 

So far so good :) 

What I'd like to do is to is have a different VisualCue template for certain pane types (e.g. depending on DataContext type, or Pane Type itself) 

Any ideas how? 

DraggedElementVisualCue.DataContext is of type DockingDragDropPayload. There is a Pane property in there but it's private ... so the data exists just not accessible. 

Martin
Telerik team
 answered on 10 Sep 2018
2 answers
106 views

Hi Telerik,

 

I'm using a RadDiagram and I want to change the behavior of the SettingsPane visibility.

Indeed, when the Zoom in the RadDiagram changed, the SettingsPane button visibility is changed to be hidden.

 

I try to implement this code :

<view:MirBuilderDiagram x:Name="myMirBuilderDiagram" Grid.Row="2" primitives:BackgroundGrid.IsGridVisible="False" primitives:BackgroundPageGrid.IsGridVisible="False" ActiveTool="{Binding ActiveTool, Mode=TwoWay}"
                        DataContext="{Binding Tag}" ItemsChanged="MirBuilderDiagram_ItemsChanged" ScrollViewer.HorizontalScrollBarVisibility="auto" ScrollViewer.VerticalScrollBarVisibility="auto"
                        SelectedItem="{Binding SelectedShape, Mode=OneWayToSource}" FontSize="9" Telerik:DiagramSurface.IsVirtualizing="False" SnapX="4" SnapY="4" ConnectionBridge="Bow" ConnectionStyle="{StaticResource RadDiagramConnectionStyle_RotateText}" CommandExecuted="myMirBuilderDiagram_CommandExecuted">
    <primitives:ItemInformationAdorner.AdditionalContent>
        <extensions:SettingsPane x:Name="mySettingPane" Diagram="{Binding ElementName=myMirBuilderDiagram}" Loaded="mySettingPane_Loaded" />
    </primitives:ItemInformationAdorner.AdditionalContent>
</view:MirBuilderDiagram>

 

Private Sub mySettingPane_Loaded(sender As Object, e As RoutedEventArgs)
    Dim settingPane As SettingsPane = TryCast(sender, SettingsPane)
 
    If settingPane IsNot Nothing Then
        Dim informationAdorner As ItemInformationAdorner = settingPane.ParentOfType(Of ItemInformationAdorner)()
        If informationAdorner IsNot Nothing Then
            AddHandler informationAdorner.IsAdditionalContentVisibleChanged, AddressOf InformationAdorner_IsAdditionalContentVisibleChanged
        End If
    End If
End Sub
 
Private Sub InformationAdorner_IsAdditionalContentVisibleChanged(ByVal sender As Object, ByVal e As EventArgs)
    Dim informationAdorner As ItemInformationAdorner = TryCast(sender, ItemInformationAdorner)
 
    If informationAdorner IsNot Nothing Then
        If Me.myMirBuilderDiagram.SelectedItem IsNot Nothing Then
            If Not informationAdorner.IsAdditionalContentVisible Then
                informationAdorner.IsAdditionalContentVisible = True
            End If
        End If
    End If
End Sub

 

The problem is at the bold line, because the "Setter is not accessible". I try to create an inherit class but the Setter is never accessible.

 

Do you know how I can keep the SettingsPane button visibility to Visible when the zoom changing (but keep the default behavior when SelectedItem changed, etc..) ?

Thank you.

Valentin
Top achievements
Rank 2
Iron
Iron
Iron
 answered on 10 Sep 2018
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?