Telerik Forums
UI for WPF Forum
0 answers
138 views
I have used RadChart for displaying graph, On legend i have used chekboxes for each item. upon which the respective series will be show/hide.On opening the form the data is loaded and legend items are checked by default. The problem is that when i unchecked the items and then scroll the chart or zoom in the checboxes are automatically checked, although the series are hidden as i have already uncheck the items.Why the checkboxes are automatically got checked on zooming or scrolling.I want the checkboxes to remain unchecked

User control class

public partial class UserControl1 : UserControl
    {
        DataSeries lineSeries;
        SeriesMapping seriesMapping;
        SeriesDefinition seriesDefinition;
        vm objvm;
        List<Data> vitalSign;
        List<CheckBox> VSChk;
        public Dictionary<object, bool?> chkbxState;
        
        public UserControl1()
        {
            InitializeComponent();
            radChart1.DefaultView.ChartArea.AxisX.LayoutMode = AxisLayoutMode.Between;
            radChart1.DefaultView.ChartArea.AxisX.AxisLabelsVisibility = Visibility.Hidden;
            //radChart1.DefaultView.ChartArea.AxisX.LabelRotationAngle = 45;
            radChart1.DefaultView.ChartArea.ZoomScrollSettingsX.ScrollMode = ScrollMode.ScrollAndZoom;
            radChart1.DefaultView.ChartArea.ZoomScrollSettingsX.MinZoomRange = 0.2;
            radChart1.DefaultView.ChartLegend.UseAutoGeneratedItems = true;
           
             
        }
 
        public void initViewModel()
        {       
            objvm = ((vm)this.FindResource("ViewModel"));
            vitalSign = new List<Data>();     
        }
        public void addData(string XValue, string YValue, string VSCode, string EncounterDate)
        {
            vitalSign.Add(new Data(DateTime.Parse(XValue), double.Parse(YValue), VSCode, DateTime.Parse(EncounterDate)));
        }
        public void setSeriesMapping()
        {
           // List<Data> vs;
            try
            {
                var v1 = (from c1 in vitalSign
                          select new { itemCode = c1.vsCode }).Distinct().ToList();
 
                foreach (var item in v1)
                {
                   // vs = new List<Data>();
                    seriesMapping = new SeriesMapping();
                    seriesDefinition = new LineSeriesDefinition();
                    seriesDefinition.ShowItemToolTips = true;
                    seriesMapping.LegendLabel = item.itemCode;
                    seriesMapping.SeriesDefinition = seriesDefinition;
                    seriesMapping.SeriesDefinition.Visibility = SeriesVisibility.Visible;
 
                    var v2 = from c2 in vitalSign
                             where c2.vsCode == item.itemCode
                             select c2;
 
                    seriesMapping.ItemMappings.Add(new ItemMapping("encounterDate", DataPointMember.XCategory));
                    seriesMapping.ItemMappings.Add(new ItemMapping("Y", DataPointMember.YValue));
                    seriesMapping.ItemMappings.Add(new ItemMapping("toolTip", DataPointMember.Tooltip));
 
                    /*foreach (var vitalsign in v2)
                    {
                        vs.Add(new Data(vitalsign.X, vitalsign.Y, vitalsign.vsCode, vitalsign.encounterDate));
                    }
                     */
                    objvm._mapping.Add(seriesMapping.LegendLabel, seriesMapping);
                   // seriesMapping.ItemsSource = vs;
                    seriesMapping.ItemsSource = v2.ToList();
                    radChart1.SeriesMappings.Add(seriesMapping);
                }
 
            }
            catch (Exception ex)
            {
 
            }
        }     
        public void setData(string controlname)
        {
            // not use now
            try
            {
                seriesMapping = new SeriesMapping();
                seriesDefinition = new LineSeriesDefinition();
                seriesDefinition.ShowItemToolTips = true;
                seriesMapping.LegendLabel = controlname;
                seriesMapping.SeriesDefinition = seriesDefinition;
                seriesMapping.SeriesDefinition.Visibility = SeriesVisibility.Visible;              
               // seriesMapping.ItemMappings.Add(new ItemMapping("X", DataPointMember.XValue));
                seriesMapping.ItemMappings.Add(new ItemMapping("X", DataPointMember.XCategory));
                seriesMapping.ItemMappings.Add(new ItemMapping("Y", DataPointMember.YValue));
                seriesMapping.ItemMappings.Add(new ItemMapping("toolTip", DataPointMember.Tooltip));
 
                seriesMapping.ItemsSource = this.vitalSign;
                 
                objvm._mapping.Add(seriesMapping.LegendLabel, seriesMapping);             
                radChart1.SeriesMappings.Add(seriesMapping);
            }
            catch  (Exception ex)
            {
             
            }
        }   
        public void setDataLineSeries()
        {
            try
            {
                var v7 = (from c7 in vitalSign
                          select new { itemCode = c7.vsCode }).Distinct().ToList();
                 
                foreach (var item in v7)
                {
                    lineSeries = new DataSeries();
                    lineSeries.Definition = new LineSeriesDefinition();
                    lineSeries.Definition.ShowItemToolTips = true;
                    lineSeries.LegendLabel = item.itemCode;
 
                    var v8 = from c8 in vitalSign
                             where c8.vsCode == item.itemCode
                             select c8;
 
                    foreach (var vitalsign in v8)
                    {
                        lineSeries.Add(new DataPoint() { XCategory = vitalsign.encounterDate.ToString("g"), YValue = vitalsign.Y, Tooltip = vitalsign.toolTip });
                    }
                   // objvm._series.Add(lineSeries.LegendLabel, lineSeries);
                    radChart1.DefaultView.ChartArea.DataSeries.Add(lineSeries);
                   
                }
            }
            catch (Exception ex)
            {
 
            }
        }
        private void RadChart1_Loaded(object sender, RoutedEventArgs e)
        {
           /* List<CheckBox> checkBoxes = radChart1.DefaultView.ChartLegend.ChildrenOfType<CheckBox>().ToList<CheckBox>();
            if (checkBoxes.Count > 0)
            {
                checkBoxes[0].IsEnabled = false;
            }
            //       SetSeriesItemStyle();
            */
        }
        public void getchkbxControl()
        {
            VSChk = new List<CheckBox>();
            var mapping = radChart1.SeriesMappings;
            try
            {
                for (int i = 0; i < mapping.Count; i++)
                {
                    ChartLegendItem legendItem = (radChart1.DefaultView.ChartLegend as System.Windows.Controls.ItemsControl).Items[i] as ChartLegendItem;
                    CheckBox checkBox = legendItem.ChildrenOfType<CheckBox>().FirstOrDefault();
                    VSChk.Add(checkBox);
                }
            }
            catch (Exception ex)
            {
 
            }
        }
 
        private void AxisX_RangeChanged(object sender, EventArgs e)
        {
            try
            {
                if (VSChk != null)
                {
                    foreach (var item in VSChk)
                    {
                        item.IsChecked = chkbxState[item.Content].Value;
                    }
                }            
            }
            catch (Exception ex)
            { }
        }
 
        private void CheckBox_Checked(object sender, RoutedEventArgs e)
        
            chkbxState = new Dictionary<object, bool?>();
            foreach (var item in VSChk)
            {          
                chkbxState.Add(item.Content, item.IsChecked);
            }
        }
 
        private void ChartArea_Loaded(object sender, RoutedEventArgs e)
        {
            
        }
        
        private void post_Unchecked(object sender, RoutedEventArgs e)
        {
            chkbxState = new Dictionary<object, bool?>();
            foreach (var item in VSChk)
            {
                chkbxState.Add(item.Content, item.IsChecked);
            }
        }
    }
   

here is the XAML code

<UserControl x:Class="HMVitalSignGraph.UserControl1"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:example="clr-namespace:HMVitalSignGraph"
             xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="500">
 
    <UserControl.Resources>
        <example:vm x:Key="ViewModel" />
        <Style x:Key="SeriesItemLabelStyle"
        TargetType="telerik:SeriesItemLabel">
            <Setter Property="HorizontalContentAlignment"
            Value="Center" />
            <Setter Property="Padding"
            Value="2,0" />
            <Setter Property="Foreground"
            Value="Black" />
            <Setter Property="FontWeight"
            Value="Bold" />
            <Setter Property="FontFamily"
            Value="Trebuchet MS" />
            <Setter Property="FontSize"
            Value="12" />
        </Style>
         
        <Style x:Key="CustomLegendItemStyle" TargetType="telerik:ChartLegendItem">
            <Setter Property="Template" >
                <Setter.Value>
                     
                    <ControlTemplate TargetType="telerik:ChartLegendItem">
                        <Grid x:Name="PART_MainContainer" HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="0,0,5,0">
                            <Path x:Name="PART_LegendItemMarker"
                                  Height="20"
                                  Width="150"
                                  Style="{TemplateBinding ItemStyle}"
                                  Stretch="UniformToFill">
                                <Path.Data>
                                    <PathGeometry x:Name="PART_ItemMarkerGeometry" />
                                </Path.Data>
                            </Path>
                             
                            <CheckBox x:Name="post" IsChecked="True"
                                      Foreground="Black"
                                      VerticalAlignment="Center"
                                      Margin="2,0"
                                      Content="{TemplateBinding Label}"                                 
                                      Background="{TemplateBinding Background}"
                                      Command="{Binding Path=ChangeSeriesVisibilityCommand, Source={StaticResource ViewModel}}"
                                      CommandParameter="{TemplateBinding Label}" Checked="CheckBox_Checked" Unchecked="post_Unchecked" />
                        </Grid>
 
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>
    <Canvas x:Name="canv" Background="#edf7ff">
        <Grid Width="{Binding ActualWidth, ElementName=canv}"  Height="{Binding ActualHeight, ElementName=canv}" MinWidth="1">
            <telerik:RadChart Name="radChart1" DataContext="{Binding}"  HorizontalAlignment="Left" telerik:StyleManager.Theme="Windows7" Loaded="RadChart1_Loaded"  VerticalAlignment="Top" >
                <telerik:RadChart.DefaultView>
                    <telerik:ChartDefaultView  ChartLegendPosition="Right">
                        <!--<telerik:ChartDefaultView.ChartTitle>
                        <telerik:ChartTitle>CDC growth chart</telerik:ChartTitle>
                    </telerik:ChartDefaultView.ChartTitle>-->
                        <telerik:ChartDefaultView.ChartLegend>
                            <telerik:ChartLegend x:Name="PrimaryLegend" Header="Click on vital signs to hide/show:" LegendItemMarkerShape="Square" LegendItemStyle="{StaticResource CustomLegendItemStyle}"  />
                        </telerik:ChartDefaultView.ChartLegend>
                        <telerik:ChartDefaultView.ChartArea >
                            <telerik:ChartArea  SmartLabelsEnabled="True" EnableAnimations="False" Padding="5,10,20,5" LabelFormatBehavior="HumanReadable"    LegendName="PrimaryLegend" FontSize="10" Loaded="ChartArea_Loaded" >
                                <telerik:ChartArea.AxisX>
                                    <telerik:AxisX  RangeChanged="AxisX_RangeChanged"  />
                                </telerik:ChartArea.AxisX>
                                <!--<telerik:ChartArea.AxisY>
                                    <telerik:AxisY ExtendDirection="None"  />
                                </telerik:ChartArea.AxisY>-->
                            </telerik:ChartArea>
                        </telerik:ChartDefaultView.ChartArea>
                    </telerik:ChartDefaultView>
                </telerik:RadChart.DefaultView>
            </telerik:RadChart>
        </Grid>
    </Canvas>
</UserControl>

View model class

class vm : ViewModelBase
    {
        public Dictionary<string, SeriesMapping> _mapping = new Dictionary<string, SeriesMapping>();
        //public Dictionary<string, DataSeries> _series = new Dictionary<string, DataSeries>();
        private ICommand _changeSeriesVisibilityCommand;
     
        public SeriesMapping this[string name]
        {
            get
            {
                return _mapping[name];
            }
            set
            {
                _mapping[name] = value;
            }
        }    
       /* public DataSeries this[string name]
        {
            get
            {
                return _series[name];
            }
            set
            {
                _series[name] = value;
            }
        }
        */
        public vm()
        {
            this.WireCommands();
        }
        public void WireCommands()
        {
            this.ChangeSeriesVisibilityCommand = new DelegateCommand(this.ChangeSeriesVisibility);
        }
        public ICommand ChangeSeriesVisibilityCommand
        {
            get
            {
                return this._changeSeriesVisibilityCommand;
            }
            private set
            {
                this._changeSeriesVisibilityCommand = value;
            }
        }
        public void ChangeSeriesVisibility(object parameter)
        {
            try
            {
                string parm = parameter.ToString();
 
                if (this._mapping[parm].SeriesDefinition.Visibility == SeriesVisibility.Collapsed || this._mapping[parm].SeriesDefinition.Visibility == SeriesVisibility.Hidden)
                    this._mapping[parm].SeriesDefinition.Visibility = SeriesVisibility.Visible;
                else
                    this._mapping[parm].SeriesDefinition.Visibility = SeriesVisibility.Hidden;
                 
               /* if (this._series[parm].Definition.Visibility == SeriesVisibility.Collapsed || this._series[parm].Definition.Visibility == SeriesVisibility.Hidden)
                    this._series[parm].Definition.Visibility = SeriesVisibility.Visible;
                else
                    this._series[parm].Definition.Visibility = SeriesVisibility.Hidden;
                */
            }
            catch (Exception ex)
            {
 
                throw;
            }
        }
    }

WPF application class

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            userControl11.initViewModel();
            userControl11.addData(DateTime.Now.ToString("g"), "10", "Diasystolic blood pressure", DateTime.Now.ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(2).ToString("g"), "20", "Diasystolic blood pressure", DateTime.Now.ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(4).ToString("g"), "30", "Diasystolic blood pressure", DateTime.Now.AddDays(2).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(6).ToString(), "40", "Diasystolic blood pressure", DateTime.Now.AddDays(2).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(8).ToString(), "50", "Diasystolic blood pressure", DateTime.Now.AddDays(2).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(10).ToString(), "60", "Diasystolic blood pressure", DateTime.Now.AddDays(4).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(11).ToString(), "70", "Diasystolic blood pressure", DateTime.Now.AddDays(4).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(12).ToString(), "80", "Diasystolic blood pressure", DateTime.Now.AddDays(6).ToString("g"));
       
            userControl11.addData(DateTime.Now.AddDays(1).ToString(), "10", "Pulse rate", DateTime.Now.AddDays(1).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(3).ToString(), "60", "Pulse rate", DateTime.Now.AddDays(1).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(5).ToString(), "90", "Pulse rate", DateTime.Now.AddDays(3).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(7).ToString(), "20", "Pulse rate", DateTime.Now.AddDays(3).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(9).ToString(), "110", "Pulse rate", DateTime.Now.AddDays(5).ToString("g"));
 
            userControl11.addData(DateTime.Now.AddDays(1).ToString(), "5", "rate", DateTime.Now.ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(3).ToString(), "15", "rate", DateTime.Now.AddDays(1).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(5).ToString(), "25", "rate", DateTime.Now.AddDays(5).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(7).ToString(), "35", "rate", DateTime.Now.AddDays(5).ToString("g"));
            userControl11.addData(DateTime.Now.AddDays(9).ToString(), "45", "rate", DateTime.Now.AddDays(7).ToString("g"));
 
            userControl11.setSeriesMapping();
               
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            userControl11.getchkbxControl();
        }
Muhammad
Top achievements
Rank 1
 asked on 22 Aug 2013
1 answer
110 views
Binding a view model property to the SearchText property of a RadAutoCompleteBox seems to have no effect (when typing in the RadAutoCompleteBox, the view model property remains null).

Is this by design? Is there a workaround?
cocowalla
Top achievements
Rank 1
 answered on 22 Aug 2013
2 answers
195 views
Hi,
Is there a way of setting the ZIndex of a CustomGridLine?
I have a BarSeries with two CustomGridLines and I want the GridLines to be over the bar.
The way it is now is that the bar is over the GridLines.

See attached image.

Thanks in advance.
Ye
Top achievements
Rank 1
 answered on 22 Aug 2013
3 answers
222 views
Hi,

I am trying to use RadRichTextBox to print envelopes.  I have defined the proper page size and it looks good on the screen.  However, when I print, the text starts at the middle of the page and gets cut off. Below is my code for the RadRichTextBox.  I use standard RadRichTextBoxRibbonUI.

Attached are 2 files: 
(1) Scanned Envelope.jpg - I printed the envelope and then scanned it.  The text gets cut off.
(2) PrintedToPdf.jpg - I printed to PDF Writer instead to printer.  Notice that the pages size seems to be incorrect.
My guess, that page size is not being set properly when printing.  Any suggestions?

<telerik:DocumentRuler Grid.Row="1">
    <telerik:RadRichTextBox x:Name="radRichTextBox" LayoutMode="Paged">
        <telerik:RadDocument>
            <telerik:Section PageOrientation="Landscape" PageMargin="25,25,25,25" PageSize="408, 912">
                <telerik:Paragraph SpacingAfter="0">
                    <telerik:Span Text="Company Name"/>                               
                </telerik:Paragraph>
                <telerik:Paragraph SpacingAfter="0">
                    <telerik:Span Text="City, Province, Postal Code"/>
                </telerik:Paragraph>
                <telerik:Paragraph>
                    <telerik:Span Text="Country"/>
                </telerik:Paragraph>
                <telerik:Paragraph/>
                <telerik:Paragraph/>
                <telerik:Paragraph TextAlignment="Center" SpacingAfter="0">
                    <telerik:Span Text="Company Name"/>
                </telerik:Paragraph>
                <telerik:Paragraph TextAlignment="Center" SpacingAfter="0">
                    <telerik:Span Text="City, Province, Postal Code"/>
                </telerik:Paragraph>
                <telerik:Paragraph TextAlignment="Center" SpacingAfter="0">
                    <telerik:Span Text="Country"/>
                </telerik:Paragraph>
            </telerik:Section>
        </telerik:RadDocument>
    </telerik:RadRichTextBox>
</telerik:DocumentRuler>
Petya
Telerik team
 answered on 22 Aug 2013
7 answers
349 views
I've successfully implemented a custom tile server map provider using the MapProviderBase abstract class.  Is there a way to turn off the client side caching?  Every time I run my application, I can see the correct tiles loading from the tile server, but they don't overwrite the old tiles stored in the client side cache. 

How to I turn this feature off? 

Thanks!
Chris
CTI
Andrey
Telerik team
 answered on 22 Aug 2013
1 answer
96 views
How do I change the RadButton visual state on the DragEnter and DragLeave events?

I have a RadPane docked left. WIthin this pane is a RadListBox and a few RadButtons. The desired behavior is that dragging a listboxitem onto a RadButton will cause the visual state of the RadButton to change on the DragEnter, similar in effect to dragging an item onto the TrashCan button on a Mac computer.

The DragEnter and DragLeave events are handled in the VB.Net code behind and are firing. The DragEnter event changes the cursor to Hand and sets the RadButton.ToolTip to some descriptive text. The DragLeave undoes this behavior. But despite event execution, the visual state does not change on the RadButton; the cursor never changes to hand and the tooltip text does not appear.

The DragVisualOffset has its x & y relative starting points set to -55 in the DragInitialize so that the drag visual state is well clear of the mouse pointer and RadButton when the DragEnter event fires.
Nick
Telerik team
 answered on 22 Aug 2013
1 answer
68 views
Hi folks,

I am trying to make heads or tails out of the changes needed to move from the old version of the DDM to the new one. 

In particular, there seem to be no samples using the new version with things like substantive changes to the DefaultFeedbackPresentation.

In the old version, there was some code hooked in that looks like...
private static UIElement CreateDefaultDropPositionFeedback()
{
    var grid = new Grid()
    {
        Height = 8,
        HorizontalAlignment = HorizontalAlignment.Stretch,
        IsHitTestVisible = false,
        VerticalAlignment = VerticalAlignment.Stretch
    };
    grid.ColumnDefinitions.Add(new ColumnDefinition()
    {
        Width = new GridLength(8)
    });
    grid.ColumnDefinitions.Add(new ColumnDefinition());
    var ellipse = new Ellipse()
    {
        ...
    };
    Grid.SetColumn(ellipse, 0);
    Grid.SetColumn(rectangle, 1);
    grid.Children.Add(ellipse);
    grid.Children.Add(rectangle);
    return grid;
}

Where would this get hooked in on the new version of the Behaviors such as the RowReorderBehavior?

Thanks,
David
Nick
Telerik team
 answered on 22 Aug 2013
1 answer
192 views
<telerik:RadDiagram x:Name="myDiagram" Grid.Row="1" IsBackgroundSurfaceVisible="False" ShapeTemplateSelector="{StaticResource ShapeTempleteSelecterr}"  IsZoomEnabled="False" ScrollViewer.VerticalScrollBarVisibility="Auto" >
            <primitives:ItemInformationAdorner.AdditionalContent>
                <telerik:SettingsPane Diagram="{Binding ElementName=myDiagram}" Template="{StaticResource SettingPaneTemplete}" />
            </primitives:ItemInformationAdorner.AdditionalContent>
        </telerik:RadDiagram>



I have written my custom template for SettingPane but I wants Partial custom. When we select the shape, the settingpane button will show and when we click on that button, settingpane window will show.

so I want only that button, and when I click on that button my custom template will show.

I had tried for that but button not shown, direct template shown.

so how to solve this problem.

 
Petar Mladenov
Telerik team
 answered on 22 Aug 2013
2 answers
146 views
HI,

I want to add the RadDiagramShape dynamically to RadDiagram control but wants to change the ContentTemplete.
<telerik:RadDiagram x:Name="myDiagram">
 
 </telerik:RadDiagram
private void btnAddNewShape_Click(object sender, System.Windows.RoutedEventArgs e)
       {
           DataTemplate templete = new DataTemplate(typeof(RadRichTextBox));
 
           this.myDiagram.AddShape(new RadDiagramShape() { });
       }


But the content editor not show RadRichTextBox, It show normal Content Property as String.


So How to add dynamically ContentTemplete of RadDiagramShape


Thanks

Sopan Vaidya
Sopan
Top achievements
Rank 1
 answered on 22 Aug 2013
3 answers
134 views
How can I lock the tile position, so maximized tiles return to their original position? I see someone created a feature request for silverlight in 2010 for the same issue, but nothing in WPF.
Tina Stancheva
Telerik team
 answered on 21 Aug 2013
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
PersistenceFramework
DataPager
Styling
TimeBar
OutlookBar
TransitionControl
Book
FileDialogs
ToolBar
ColorPicker
TimePicker
SyntaxEditor
MultiColumnComboBox
VirtualGrid
Wizard
ExpressionEditor
NavigationView (Hamburger Menu)
DesktopAlert
WatermarkTextBox
BarCode
SpellChecker
DataServiceDataSource
EntityFrameworkDataSource
RadialMenu
ChartView3D
Data Virtualization
BreadCrumb
ProgressBar
Sparkline
LayoutControl
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
PasswordBox
Rating
SplashScreen
Accessibility
Callout
CollectionNavigator
Localization
AutoSuggestBox
VirtualKeyboard
HighlightTextBlock
Security
TouchManager
StepProgressBar
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
+? more
Top users last month
Ambisoft
Top achievements
Rank 2
Iron
Pascal
Top achievements
Rank 2
Iron
Matthew
Top achievements
Rank 1
Sergii
Top achievements
Rank 1
Iron
Iron
Andrey
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Ambisoft
Top achievements
Rank 2
Iron
Pascal
Top achievements
Rank 2
Iron
Matthew
Top achievements
Rank 1
Sergii
Top achievements
Rank 1
Iron
Iron
Andrey
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?