> For the complete documentation index, see [llms.txt](https://docs-siticoneframework.gitbook.io/home/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-siticoneframework.gitbook.io/home/net-framework-or-net-core-ui/progress-and-loading/siticone-smoothcspinner/arc-dimension-settings.md).

# Arc Dimension Settings

A feature that enables developers to control the extent of the spinner's animated arc by defining its minimum and maximum angular dimensions.

## Overview

The Arc Dimension Settings feature of the SiticoneSmoothCircularSpinner control allows you to configure the dynamic range of the spinner's arc. By setting the minimum and maximum arc lengths (in degrees), you control how much of the circle is drawn during the oscillation cycle. This is particularly useful for fine-tuning the visual impact and ensuring the spinner meets the design and user experience requirements of your application.

***

### Detailed Feature Breakdown

Below is a table summarizing the key properties for arc dimension customization:

| Property     | Data Type | Default Value | Description                                                                                                                      |
| ------------ | --------- | ------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| ArcMinLength | float     | 20f           | Specifies the shortest length of the arc during the animation cycle, representing the most condensed state of the spinner's arc. |
| ArcMaxLength | float     | 270f          | Specifies the longest length of the arc during the animation cycle, representing the most expanded state of the spinner's arc.   |

***

### Key Points

| Aspect              | Details                                                                                                           |
| ------------------- | ----------------------------------------------------------------------------------------------------------------- |
| Customization Range | Defines the range of the arc's oscillation, allowing you to control the visual appearance of the spinner.         |
| Dynamic Adjustment  | Changing these properties triggers a UI refresh via Invalidate(), making it easy to see changes immediately.      |
| Visual Consistency  | Helps maintain visual consistency across the application by ensuring the spinner's arc matches the design intent. |

***

### Best Practices

| Practice                            | Description                                                                                                              | Example Code Snippet                                                                                                                             |
| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| Set Reasonable Arc Limits           | Ensure ArcMinLength and ArcMaxLength values are within a logical range (e.g., 0° to 360°) to avoid drawing errors.       | `csharp<br>spinner.ArcMinLength = 20f;<br>spinner.ArcMaxLength = 270f;<br>`                                                                      |
| Synchronize with Animation Settings | Adjust arc dimensions in harmony with rotation and oscillation speeds to achieve a smooth and coherent animation effect. | `csharp<br>spinner.RotationSpeed = 480f;<br>spinner.OscillationSpeed = 0.5f;<br>spinner.ArcMinLength = 30f;<br>spinner.ArcMaxLength = 250f;<br>` |
| Test on Various Resolutions         | Verify that the arc dimensions look visually appealing on different screen sizes and DPI settings.                       | `csharp<br>// Test on various forms or device configurations<br>`                                                                                |

***

### Common Pitfalls

| Pitfall                      | Explanation                                                                                                               | How to Avoid                                                                                |
| ---------------------------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| Overlapping Arc Values       | Setting ArcMinLength greater than or equal to ArcMaxLength can lead to unexpected behavior or no visible arc change.      | Validate that ArcMinLength is always less than ArcMaxLength.                                |
| Inconsistent Visual Feedback | Drastic differences between the arc limits may cause a jarring visual experience during oscillation.                      | Use incremental adjustments and test the appearance to maintain a smooth visual transition. |
| Unresponsive UI Changes      | Failing to trigger an update (via Invalidate()) after changing the properties might leave the control unchanged visually. | Ensure that property setters call Invalidate() to reflect changes immediately.              |

***

### Usage Scenarios

| Scenario                        | Description                                                                                                                 | Code Example                                                                                                                                                                                                         |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Custom Loading Indicator        | Use customized arc dimensions to create a unique loading indicator that aligns with your application's design.              | `csharp<br>var spinner = new SiticoneSmoothCircularSpinner();<br>spinner.ArcMinLength = 15f;<br>spinner.ArcMaxLength = 300f;<br>`                                                                                    |
| Emphasized Animation Adjustment | Fine-tune the spinner's animation by narrowing or widening the arc's oscillation range for emphasis on certain UI elements. | `csharp<br>var spinner = new SiticoneSmoothCircularSpinner();<br>spinner.ArcMinLength = 40f;<br>spinner.ArcMaxLength = 220f;<br>`                                                                                    |
| Dynamic UI Feedback             | Adjust arc dimensions in response to user interactions or specific application events to provide dynamic feedback.          | `csharp<br>// Change arc dimensions on an event (e.g., button click)<br>private void OnUpdateArcSettings(object sender, EventArgs e)<br>{<br> spinner.ArcMinLength = 25f;<br> spinner.ArcMaxLength = 260f;<br>}<br>` |

***

### Code Examples

#### Example 1: Basic Arc Dimension Configuration

This example demonstrates how to integrate the spinner control with custom arc dimension settings into a WinForms application.

```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
using SiticoneNetFrameworkUI; // Ensure this namespace is included

public class ArcDimensionForm : Form
{
    private SiticoneSmoothCircularSpinner spinner;

    public ArcDimensionForm()
    {
        InitializeComponents();
    }

    private void InitializeComponents()
    {
        // Initialize the spinner control with custom arc dimensions
        spinner = new SiticoneSmoothCircularSpinner
        {
            Location = new Point(50, 50),
            Size = new Size(100, 100),
            ArcMinLength = 20f,  // Minimum arc length
            ArcMaxLength = 270f  // Maximum arc length
        };

        // Add spinner to the form
        Controls.Add(spinner);

        // Configure form properties
        Text = "Arc Dimension Settings Demo";
        Size = new Size(300, 300);
    }

    [STAThread]
    public static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new ArcDimensionForm());
    }
}
```

#### Example 2: Dynamic Adjustment of Arc Dimensions

In this example, a button click event dynamically adjusts the arc dimensions during runtime, providing immediate visual feedback.

```csharp
using System;
using System.Drawing;
using System.Windows.Forms;
using SiticoneNetFrameworkUI;

public class DynamicArcDimensionForm : Form
{
    private SiticoneSmoothCircularSpinner spinner;
    private Button btnUpdateArc;

    public DynamicArcDimensionForm()
    {
        InitializeComponents();
    }

    private void InitializeComponents()
    {
        // Initialize the spinner control with initial arc dimensions
        spinner = new SiticoneSmoothCircularSpinner
        {
            Location = new Point(50, 50),
            Size = new Size(100, 100),
            ArcMinLength = 20f,
            ArcMaxLength = 270f
        };

        // Button to update arc dimensions dynamically
        btnUpdateArc = new Button
        {
            Text = "Update Arc Dimensions",
            Location = new Point(50, 170),
            Size = new Size(150, 30)
        };
        btnUpdateArc.Click += BtnUpdateArc_Click;

        // Add controls to the form
        Controls.Add(spinner);
        Controls.Add(btnUpdateArc);

        // Set up form properties
        Text = "Dynamic Arc Dimension Demo";
        Size = new Size(350, 350);
    }

    private void BtnUpdateArc_Click(object sender, EventArgs e)
    {
        // Update arc dimensions on button click
        spinner.ArcMinLength = 30f;
        spinner.ArcMaxLength = 240f;
    }

    [STAThread]
    public static void Main()
    {
        Application.EnableVisualStyles();
        Application.Run(new DynamicArcDimensionForm());
    }
}
```

***

### Review

The Arc Dimension Settings feature in the SiticoneSmoothCircularSpinner control is essential for fine-tuning the visual dynamics of the spinner's arc. By allowing the configuration of both the minimum and maximum arc lengths, this feature provides developers with granular control over the appearance and behavior of the animated arc, ensuring it fits seamlessly into various design paradigms.

***

### Summary

The Arc Dimension Settings feature offers straightforward yet powerful options to customize the angular range of the spinner's animated arc. With properties to define the minimum and maximum arc lengths, developers can adjust the control’s visual output to meet specific design requirements. Implementing these settings using the provided best practices and code examples will help achieve a smooth, visually appealing user experience in your WinForms applications.

***

### Additional Sections

#### Troubleshooting Tips

| Issue                            | Potential Cause                                                 | Suggested Resolution                                                        |
| -------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------------------- |
| Arc not animating as expected    | Mismatched or reversed arc values (ArcMinLength ≥ ArcMaxLength) | Verify that ArcMinLength is less than ArcMaxLength and adjust accordingly.  |
| Visual inconsistencies on resize | Fixed arc dimensions may not scale well with control size       | Consider adjusting arc dimensions in relation to control size if necessary. |
| Delay in visual updates          | Invalidate() may not be triggered properly after changes        | Ensure property setters call Invalidate() to refresh the UI immediately.    |

#### Integration Checklist

| Step                               | Description                                                   | Verification                                                                           |
| ---------------------------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| Reference the Control Namespace    | Include the SiticoneNetFrameworkUI namespace in your project. | The control is available in the toolbox or instantiated in code.                       |
| Configure Arc Dimension Properties | Set ArcMinLength and ArcMaxLength to desired values.          | Visual inspection confirms that the spinner displays the arc within the defined range. |
| Test Dynamic Adjustments           | Verify runtime changes are reflected immediately.             | Changes via button clicks or events update the spinner’s arc as expected.              |

By following this comprehensive documentation, developers can effectively integrate and customize the Arc Dimension Settings feature of the SiticoneSmoothCircularSpinner control, ensuring a flexible and visually appealing animated arc in their .NET WinForms applications.
