Rogue Pixel Appearing at Top Left Corner of Control

+ I have noticed a rogue pixel in the top left corner of an SfCircularGauge. The pixel color is that of one of the CircularPointer elements added to the control. It is the last pointer added of PointerType="RangePointer" but not the last pointer added to the control. Here is an enlarged screenshot of the pixel.

Image_6365_1731243486290


And this is how it appears in the IDE at 400% enlargement:

Image_1384_1731243649029

The SfCircularGauge is designed in Xaml like this:

<!--  Speedometer  -->


<syn:SfCircularGauge
    x:Name="Speedometer"
    Grid.Column="1"
    Width="200"
    Height="260"
    GaugeHeaderPosition="0.5,0.75"
    HeaderAlignment="Custom">
    <syn:SfCircularGauge.GaugeHeader>
        <Grid Width="35">
            <TextBlock
                Height="40"
                HorizontalAlignment="Center"
                FontSize="13"
                FontWeight="Bold"
                Foreground="{StaticResource DefaultTextBoxColor}"
                Text="{Binding Speed, RelativeSource={RelativeSource AncestorType={x:Type local:MainControl}, Mode=FindAncestor}}" />
        </Grid>
    </syn:SfCircularGauge.GaugeHeader>
    <syn:SfCircularGauge.Scales>
        <syn:CircularScale
            EndValue="{Binding MaxSpeedValue, RelativeSource={RelativeSource AncestorType={x:Type local:MainControl}, Mode=FindAncestor}}"
            Interval="10"
            LabelOffset="0.1"
            LabelStroke="{DynamicResource DefaultTextBoxColor}"
            Radius="100"
            RimStroke="{StaticResource DefaultTextBoxColor}"
            RimStrokeThickness="4"
            ShowRim="True">
            <syn:CircularScale.MajorTickSettings>
                <syn:MajorTickSetting
                    Length="10"
                    Stroke="{DynamicResource DefaultTextBoxColor}"
                    StrokeThickness="1" />
            </syn:CircularScale.MajorTickSettings>
            <syn:CircularScale.MinorTickSettings>
                <syn:MinorTickSetting
                    Length="5"
                    Stroke="{DynamicResource DefaultTextBoxColor}"
                    StrokeThickness="1" />
            </syn:CircularScale.MinorTickSettings>
            <syn:CircularScale.Pointers>
                <syn:CircularPointer
                    x:Name="SpeedNeedle"
                    KnobFill="{StaticResource DefaultTextBoxColor}"
                    KnobStroke="{StaticResource DefaultTextBoxColor}"
                    NeedleLengthFactor="0.65"
                    NeedlePointerStroke="{StaticResource DefaultTextBoxColor}"
                    NeedlePointerStrokeThickness="7"
                    NeedlePointerType="Triangle"
                    PointerCapDiameter="12"
                    PointerType="NeedlePointer"
                    Value="{Binding Speed, RelativeSource={RelativeSource AncestorType={x:Type local:MainControl}, Mode=FindAncestor}}" />
                <syn:CircularPointer
                    x:Name="SafeRangeMaxBar"
                    PointerType="RangePointer"
                    RangePointerStroke="{DynamicResource SafeRangeColor}"
                    RangePointerStrokeThickness="5"
                    Value="{Binding SafeRangeMax, RelativeSource={RelativeSource AncestorType={x:Type local:MainControl}, Mode=FindAncestor}}" />
                <syn:CircularPointer
                    x:Name="CautionRangeMaxBar"
                    PointerType="RangePointer"
                    RangePointerStroke="{DynamicResource CautionColor}"
                    RangePointerStrokeThickness="5"
                    RangeStart="{Binding SafeRangeMax, RelativeSource={RelativeSource AncestorType={x:Type local:MainControl}, Mode=FindAncestor}}"
                    Value="{Binding CautionRangeMax, RelativeSource={RelativeSource AncestorType={x:Type local:MainControl}, Mode=FindAncestor}}" />

                <syn:CircularPointer
                    x:Name="AlertRangeMaxBar"
                    PointerType="RangePointer"
                    RangePointerStroke="{DynamicResource AlertColor}"
                    RangePointerStrokeThickness="5"
                    RangeStart="{Binding CautionRangeMax, RelativeSource={RelativeSource AncestorType={x:Type local:MainControl}, Mode=FindAncestor}}"
                    Value="{Binding AlertRangeMax, RelativeSource={RelativeSource AncestorType={x:Type local:MainControl}, Mode=FindAncestor}}" />

                <syn:CircularPointer
                    x:Name="NextMinSpeedPointer"
                    PointerType="SymbolPointer"
                    Symbol="Triangle"
                    SymbolPointerHeight="15"
                    SymbolPointerStroke="White"
                    SymbolPointerWidth="12"
                    Value="{Binding NextMinSpeed, RelativeSource={RelativeSource AncestorType={x:Type local:MainControl}, Mode=FindAncestor}}" />
            </syn:CircularScale.Pointers>
        </syn:CircularScale>
    </syn:SfCircularGauge.Scales>
</syn:SfCircularGauge>

I have bolded (and set apart) the part that defines the CircularPointer and determines the color of the rogue pixel.

Certainly, this is not a serious issue, but I think it perhaps reflects an error in the path used to draw the arc for the circular pointer, and you would like to know about this anomaly.


4 Replies 1 reply marked as answer

VO Vishal Omprasad Syncfusion Team November 11, 2024 01:19 PM UTC

Hi Gil,

We have checked and we are able to replicate the reported scenario “Tiny dot in pixel size appearing at top left corner” of the WPF SfCircularGauge control, from our end. We have logged issue report for the same. We will fix this issue and will include the fix in our upcoming weekly NuGet release update, which is expected to roll out on December 03, 2024. We appreciate your patience until then.

You can track the status of this report through the following feedback link.

Feedback link: https://www.syncfusion.com/feedback/62989/tiny-dot-in-pixel-size-appearing-at-top-left-corner-of-sfcirculargauge-control.

Note: The provided feedback link is private, and you need to log in to view this feedback.

Disclaimer: Inclusion of this solution in the weekly release may change due to other factors including but not limited to QA checks and works reprioritization.

Regards,
Vishal O.


Marked as answer

GY Gil Yoder November 11, 2024 02:22 PM UTC

Thank you for looking into this.



VO Vishal Omprasad Syncfusion Team December 3, 2024 06:02 AM UTC

Hi Gil,

We have fixed the reported scenario “Tiny dot in pixel size appearing at top left corner” in the WPF SfCircularGauge control from our end. Due to the testing phase, we have prepared a private patch (NuGet and DLL) that includes the fix and have attached it below for your reference. Please test the patch and let us know if your issue is resolved.

Note:
Before installing the patch, please follow the below steps to remove the old cache NuGet and check your application with the provided NuGet:

  1. Uninstall the Syncfusion NuGet installed in your application.

  2. Clear your application NuGet cache referring the KB: How to clear NuGet cache?.

  3. Clean your application.

  4. When installing patch, install the dependency NuGet first (Syncfusion.Shared.WPF) and then install the patch NuGet(s) or DLL(s) for the SfGauge control (Syncfusion.SfGauge.WPF).

  5. Check the reported problem.

Disclaimer:

Please note that the patch was prepared specifically for version 27.2.2. We will include the issue fix in our upcoming weekly NuGet release update, on December 17, 2024. We will let you know once the NuGet release is rolled-out and appreciate your patience until then

Regards,
Vishal O.


Attachment: Syncfusion.SfGauge.WPF_27.2.2_2ecaea50.zip


VO Vishal Omprasad Syncfusion Team December 19, 2024 09:19 AM UTC

Hi Gil,

We have fixed the reported scenario “Tiny dot in pixel size appearing at top left corner” in the WPF SfCircularGauge control from our end and included the fix in the latest weekly NuGet release update version 28.1.35, which is available for download in nuget.org.

Root-cause: When the RangeCap is set to Start, End, or None, the visibility of the RangePointer was not handled correctly.

We thank you for your support and appreciate your patience in waiting for this update. Please feel free to reach out to us if you would require any further assistance.

Regards,
Vishal O.


Loader.
Up arrow icon