skip navigation
  • Product Bundles

    DevCraft

    All Telerik .NET tools and Kendo UI JavaScript components in one package. Now enhanced with:

    • AI Coding Assistants
    • Embedded Reporting
    • Document Processing Libraries
    • SSO Account Sign-in

    Web

    Kendo UI UI for Angular UI for Vue UI for jQuery KendoReact UI for Blazor UI for ASP.NET Core UI for ASP.NET MVC UI for ASP.NET AJAX

    Mobile

    UI for .NET MAUI

    Document Management

    Telerik Document Processing

    Desktop

    UI for .NET MAUI UI for WinUI UI for WinForms UI for WPF

    Reporting

    Telerik Reporting Telerik Report Server

    Testing & Mocking

    Test Studio Telerik JustMock

    CMS

    Sitefinity

    AI Productivity Tools

    AI Coding Assistants

    UI/UX Tools

    ThemeBuilder Design System Kit Templates and Building Blocks

    Debugging

    Fiddler Fiddler Everywhere Fiddler Classic Fiddler Everywhere Reporter FiddlerCore

    Free Tools

    KendoReact Free VB.NET to C# Converter Testing Framework
    View all products
  • Overview
  • Demos
    • What's New
    • Roadmap
    • Release History
  • Support and Learning

    • Support and Learning Hub
    • First Steps
    • Docs
    • Demos
    • Virtual Classroom
    • Forums
    • Videos
    • Blogs
    • Accessibility
    • Submit a Ticket

    Productivity and Design Tools

    • Visual Studio Extensions
    • Visual Studio Templates
    • Embedded Reporting
  • Pricing
  • Shopping cart
    • Account Overview
    • Your Licenses
    • Downloads
    • Support Center
    • Forum Profile
    • Payment Methods
    • Edit Profile
    • Log out
  • Login
  • Contact Us
  • Try now

Class FourPositionsLabelsStrategy

Represents a Fast Algorithm for Label Placement implementation for the RadChartView labels.

Inheritance
System.Object
SmartLabelsStrategyBase
FourPositionsLabelsStrategy
EightPositionsLabelsStrategy
Inherited Members
SmartLabelsStrategyBase.DistanceToLabel
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: Telerik.WinControls.UI
Assembly: Telerik.WinControls.ChartView.dll

Syntax

public class FourPositionsLabelsStrategy : SmartLabelsStrategyBase

Constructors

FourPositionsLabelsStrategy()

Declaration
public FourPositionsLabelsStrategy()

Properties

PositionsPerLabel

Gets or sets the number of label positions the strategy will serach in.

Declaration
protected virtual int PositionsPerLabel { get; }
Property Value
System.Int32

Methods

AssignMinimumOverlapLabels()

Adds any labels that do not have a position set to the position with the least collisions.

Declaration
protected virtual void AssignMinimumOverlapLabels()

AssignSmartRectangles(ChartSeriesCollection)

Assigns the smart rectangles of labels.

Declaration
protected virtual void AssignSmartRectangles(ChartSeriesCollection series)
Parameters
ChartSeriesCollection series

The series.

BuildAdjacencyMatrix(ChartSeriesCollection)

Builds the adjacency matrix. A matrix that represents the collision graph of all labels.

Declaration
protected virtual void BuildAdjacencyMatrix(ChartSeriesCollection series)
Parameters
ChartSeriesCollection series

The series.

CalculateLocations(ChartSeriesCollection, Rectangle)

Within this method labels' positions are calculated and are set to the SmartLocation property of each label.

Declaration
public override void CalculateLocations(ChartSeriesCollection series, Rectangle plotArea)
Parameters
ChartSeriesCollection series

All the series in the current chart view.

System.Drawing.Rectangle plotArea

The plot area.

Overrides
SmartLabelsStrategyBase.CalculateLocations(ChartSeriesCollection, Rectangle)

GetAllLabelPositions(LabelElement)

Gets all the possible label positions.

Declaration
protected virtual IEnumerable<Rectangle> GetAllLabelPositions(LabelElement label)
Parameters
LabelElement label

The label.

Returns
System.Collections.Generic.IEnumerable<System.Drawing.Rectangle>

GetLabelLineSide(Int32)

Gets the label LineSide corresponding to the label position.

Declaration
protected virtual LineSide GetLabelLineSide(int labelPosition)
Parameters
System.Int32 labelPosition

The label position.

Returns
LineSide

GetLabelRectangle(LabelElement, Int32)

Gets the label rectangle from its position.

Declaration
protected virtual Rectangle GetLabelRectangle(LabelElement label, int labelPosition)
Parameters
LabelElement label

The label.

System.Int32 labelPosition

The label position.

Returns
System.Drawing.Rectangle

HasUnassignedLabels()

Determines whether the are labels with unassigned label position.

Declaration
protected virtual bool HasUnassignedLabels()
Returns
System.Boolean

true if [has unassigned labels]; otherwise, false.

IsFinalSolution()

Determines whether the current state of the adjacency matrix is a final solution.

Declaration
protected virtual bool IsFinalSolution()
Returns
System.Boolean

true if it is final solution; otherwise, false.

IsMatrixEmpty()

Determines whether there are uncheck label positions in the adjacency matrix.

Declaration
protected virtual bool IsMatrixEmpty()
Returns
System.Boolean

true if [is matrix empty]; otherwise, false.

LocalOptimization()

Peforms local optiomizations to labels that improve the global solution.

Declaration
protected virtual void LocalOptimization()

MaximumNonconflict()

Places as much as possible labels into positions without overlaps.

Declaration
protected virtual void MaximumNonconflict()

Extension Methods

SvgExtentions.Traverse<T>(T, Func<T, IEnumerable<T>>)
SvgExtentions.TraverseDepthFirst<T>(T, Func<T, IEnumerable<T>>)
Getting Started
  • Install Now
  • Demos
  • Step-by-Step Tutorial
  • Sample Applications
  • SDK Samples
  • Visual Studio Extensions
Support Resources
  • Code Library
  • Knowledge Base
  • Videos
Community
  • Forums
  • Blogs
  • Feedback Portal
  • Document Processing Feedback Portal

Copyright © 2018 Progress Software Corporation and/or its subsidiaries or affiliates.
All Rights Reserved.

Progress, Telerik, and certain product names used herein are trademarks or registered trademarks of Progress Software Corporation and/or one of its subsidiaries or affiliates in the U.S. and/or other countries. See Trademarks for appropriate markings.