When you resize (but only decreasing size) the control, the position and size of the Marker indicator is not updated.
This is reproducible with RadVerticalLinearGauge and VerticalLinearScale. When the RelativeHeight of the scale is set to 1 and the RelativeY is set to 0.
As a work around you can avoid setting the RelativeHeight and RelativeY properties of VerticalLinearScale.One way to work around this is to include a dummy resource with the name of "HexagonalSevenSegsN" <telerik:RadVerticalLinearGauge> <FrameworkElement.Resources> <DataTemplate x:Key="HexagonalSevenSegsN" /> The same exception is also thrown when you are trying to bind the NumericIndicator Value property when using SevenSegsNumberPosition position. In this scenario, the data context is not propagated to the NumericIndicator. To workaround this you can set the Source binding. <Window.Resources> <local:TestViewModel x:Key="viewModel"/> </Window.Resources> <tk:RadRadialGauge Name="gauge" Height="200" Width="200" Margin="5"> <tk:RadialScale Min="0" Max="300" MajorTicks="10" LabelRotationMode="None"> <tk:RadialScale.Indicators> <tk:NumericIndicator x:Name="numericIndicator" Value="{Binding TestValue,Source={StaticResource viewModel}}"
BarIndicator is not updated when using GaugeRanges and their Min and Max properties are changed at runtime. The indicator's layout is updated only when the gauge control is re-sized. Possible workaround: Update measure and arrange the BarIndicator control manually. var size = this.BarIndicatorRanges1.RenderSize; this.BarIndicatorRanges1.Measure(Size.Empty); this.BarIndicatorRanges1.Measure(size); this.BarIndicatorRanges1.Arrange(new Rect(size)); this.BarIndicatorRanges1.UpdateLayout();
When the Min and Max properties of the GaugeRange control are updated dynamically, a memory leak occurs, where ObjectRangeInfo elements are created but not released at a later time. The fix is available in LIB Version 2015.2.803.
When the Effect property of the gauge's scale is set (to BlurEffect for example) any mouse interaction with the control is lost. If the Effect property of the panel that wraps the gauge is set, the mouse interaction of all children of this panel is lost. Workaround: Disable the interaction with the scale and implement the moving of the indicators on MouseLeftButtonDown. Here is an example: <telerik:RadRadialGauge MouseLeftButtonDown="RadRadialGauge_MouseLeftButtonDown" > <telerik:RadialScal Min="1" Max="12" IsInteractive="False"> <telerik:RadialScale.Indicators> <telerik:Needle /> <telerik:Pinpoint /> </telerik:RadialScale.Indicators> </telerik:RadialScale> </telerik:RadRadialGauge> Note that the IsInteractive property's default value is False so you can just skip setting it. private void RadRadialGauge_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { var mousePosition = e.GetPosition(this.rs1); double value = this.rs1.GetValueByPoint(mousePosition); foreach (UIElement element in this.rs1.Indicators) { InteractiveIndicator indicator = element as InteractiveIndicator; if (indicator != null) { indicator.Value = value; } } }
When the gauge contains a scale which is interactive (IsInteractive property is true) and when the Gauge control it is embed inside the RadFluidContentControl.LargeContent then it throws an exception. ComException with Message: UCEERR_RENDERTHREADFAILURE. This is reproducible also: - In any control that uses animation transitions to change its content. - If many instances of a gauge control are added in the transition's control content.
When the Ranges property of scale is bound inside a user control then it causes the "Object reference not set to an instance of an object" exception in the Telerik.Windows.Controls.Gauge.ScaleBase.OnApplyTemplate method. As a workaround you can set the Ranges property to empty GaugeRangeCollection in your user control using the SetCurrentValue method which does not break the databinding. Also it will require to set the Ranges.ItemTemplate property after the scale is loaded.