Unplanned
Last Updated: 04 Nov 2024 16:07 by Stenly

When using the RadToggleSwitchButton and the CheckedContent and UncheckedContent properties are not utilized, in some themes, the on and off states cannot be correctly distinguished. For example, the track or the thumb does not indicate whether the button is checked or not.

Themes, in which this is present are the following ones:

  • Material
  • Office2013
  • Windows8 and Windows8Touch
  • OfficeBlack, OfficeBlue, and OfficeSilver 
Completed
Last Updated: 01 Jul 2024 11:22 by ADMIN
Release 2024.2.701 (Preview)

Please add an option to modify the corner radius for TrackBackground and UncheckedTrackBackground in the RadToggleSwitchButton template.

The radius of both rectangles is hard-coded to 9 (TrackBackground)  / 12 (UncheckedTrackbackground) (Why are they different btw?). While it is possible to set the TrackHeight and TrackWidth to custom values, this doesn't really work well for the Fluent theme right now due to the radii quickly becoming disproportionally large or small compared to the TrackHeight. This results in the control losing its shape and becoming more and more egg-shaped or rectangular, depending on whether you decrease or increase the TrackHeight.

Ideally, the Radii would be automatically computed, depending on the selected TrackHeight (Floor(TrackHeight/2) ?), however, a manual solution would also be a lot better than nothing. That way we could at lease define proportionally matching values via styles.

<Grid Grid.Column="1" SnapsToDevicePixels="True" Height="{TemplateBinding TrackHeight}">
                            <Rectangle x:Name="TrackBackground" RadiusX="12" RadiusY="12" Fill="{TemplateBinding Background}" Stroke="{TemplateBinding BorderBrush}" Opacity="0" StrokeThickness="{TemplateBinding BorderThickness}" />
                            <Rectangle x:Name="UncheckedTrackBackground" RadiusX="9" RadiusY="9" Fill="{StaticResource MainBrush}" Stroke="{StaticResource BasicBrush}" StrokeThickness="{TemplateBinding BorderThickness}" />
                            <Ellipse x:Name="PART_Thumb" Fill="{StaticResource MarkerInvertedBrush}" Width="{TemplateBinding ThumbWidth}" Height="{TemplateBinding ThumbHeight}"
                                     HorizontalAlignment="Left" RenderTransformOrigin="0.5,0.5" Margin="6 0">
                                <Ellipse.RenderTransform>
                                    <TranslateTransform X="0" Y="0" />
                                </Ellipse.RenderTransform>
                            </Ellipse>
                        </Grid>

Completed
Last Updated: 08 Apr 2024 14:24 by ADMIN
Release 2024.1.408

NullReferenceException is thrown if you set the IsChecked property of the RadToggleSwitchButton before the button is added to the visual tree. This happens only when the switch animation is disabled.

To work this around, you can set the AnimationManager.IsAnimationEnabled property of the button to True initially. And then set it back to False on Loaded of the button.

Completed
Last Updated: 11 Mar 2024 07:38 by ADMIN
Release 2024.1.228 (Preview)

RadToggleSwitchButton: The animation of the thumb switch updates its position when the animation finishes. This happens with a slight delay. However, if the animation is disabled, this delay should not be executed. Instead, the thumb should be updated immediately.
Currently, the delay can causes an animation-like effect in some specific situations.

To work this around, you can create a custom RadToggleSwitchButton and override the property changed callback of the IsChecked property.

public class CustomToggleSwitchButton : RadToggleSwitchButton
{
    private FrameworkElement thumb;

    static CustomToggleSwitchButton()
    {
        DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomToggleSwitchButton), new FrameworkPropertyMetadata(typeof(CustomToggleSwitchButton)));
        IsCheckedProperty.OverrideMetadata(typeof(CustomToggleSwitchButton), new FrameworkPropertyMetadata(OnIsCheckedPropertyChanged));
    }

    public override void OnApplyTemplate()
    {
        base.OnApplyTemplate();
        this.thumb = this.GetTemplateChild("PART_Thumb") as FrameworkElement;
    }

    private static void OnIsCheckedPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
    {
        var switchButton = (CustomToggleSwitchButton)d;

        if (switchButton.thumb == null)
        {
            return;
        }

        bool? isChecked = e.NewValue as bool?;
        if (isChecked == true)
        {
            switchButton.thumb.HorizontalAlignment = HorizontalAlignment.Right;                
        }
        else if (isChecked == false)
        {
            switchButton.thumb.HorizontalAlignment = HorizontalAlignment.Left;
        }
        else if (switchButton.IsThreeState)
        {
            switchButton.thumb.HorizontalAlignment = HorizontalAlignment.Center;
        }
    }
}

Unplanned
Last Updated: 28 Sep 2023 10:49 by ADMIN
The UI freezes if the DropDownContent of RadDropDownButton has a native Run element and the CloseOnPopupMouseLeftButtonUp property is set to True.
Completed
Last Updated: 25 May 2023 13:36 by ADMIN
If you have a tooltip on a button and focus the button before hovering it, the tooltip is not shown
Unplanned
Last Updated: 10 Jan 2023 14:13 by Martin Ivanov
Add event in RadHyperlinkButton, that allows you to cancel the click action and replace it with custom one. The event can be executed only if the url is invalid, so you can decide if you should leave the default exception that is thrown in this case or if you want to cancel the opening action and implement custom action. 
Won't Fix
Last Updated: 30 Nov 2022 16:33 by ADMIN
Clicking on a RadDropDownButton in the Visual Studio 17.4.0 designer makes it stop responding.
Unplanned
Last Updated: 27 Jun 2022 08:11 by Martin Ivanov
The RadSplitButton implements the IDisposable interface, but its Dispose method cannot be overridden. Make it protected virtual so its default logic can be extended or replaced when creating a custom button class.
Completed
Last Updated: 28 Oct 2021 13:57 by ADMIN
Release LIB 2021.3.1101 (1 Nov 2021)

The application hangs when you click on a Label element placed in the DropDownContent of RadSplitButton. In order to recreate this the content of the Label should contain an underscore character, thus enabling the access text WPF functionality. Also, the CloseOnPopupMouseLeftButtonUp property should be set to True.

This behavior can be reproduced with any element that is not derived from FrameworkElement. The issue in this case appear because when the access text is enabled, the Label control produces Run elements in its visual tree. The Run class doesn't derive from FrameworkElement, but from FrameworkContentElement, which causes the issue.

To work this around, use TextBlock instead of Label.

Completed
Last Updated: 17 Feb 2021 12:06 by ADMIN
Release R1 2021 SP1
Enable controlling the alignment of the control's content through the HorizontalContentAlignment and VerticalContentAlignment properties.
Completed
Last Updated: 09 Oct 2020 13:24 by ADMIN
Release LIB 2020.3.1012
A StackOverflowException occurs when you press a RadDropDownButton placed into the DropDownContent of another RadDropButton.

To work this around, subscribe for the LostMouseCapture event of the parent drop down button and handle it.

private void DropDownButton_LostMouseCapture(object sender, MouseEventArgs e)
{
      e.Handled = true;
}
Completed
Last Updated: 14 Feb 2020 13:43 by ADMIN
Release R1 2020 SP
If you host RadDropDownButton in a ScrollViewer and then start scrolling (using mouse wheel) while its dropdown content is opened, the scrolling works and the buttons goes outside of the viewport. However, the dropdown content (Popup) stays within the viewport, which looks like the dropdown gets detached from the control.

To avoid this, handle the scrolling of the ScrollViewer when the dropdown content is opened. This behavior is already implemented in RadComboBox by overriding its OnMouseWheel method and handling the event arguments.

To work this around subscribe to the MouseWheel event of RadDropDownButton and set the Handled property of the event arguments to True.

private void RadDropDownButton_MouseWheel(object sender, MouseWheelEventArgs e)
{
	var btn = (RadDropDownButton)sender;
	if (btn.IsOpen)
	{
		e.Handled = true;
	}            
}


Completed
Last Updated: 02 Dec 2019 07:09 by ADMIN
Release LIB 2019.3.1202
ADMIN
Created by: Telerik Admin
Comments: 0
Category: Buttons
Type: Feature Request
7
The native radio button supports validation. Implement validation for the RadRadioButton
Completed
Last Updated: 06 Nov 2019 09:36 by ADMIN
Release LIB 2019.3.1111
Unplanned
Last Updated: 24 Jun 2019 09:59 by Vitalij
When IsThreeState property is true, after each click values of IsChecked property cycle like this: null -> false -> true. I would like to reverse this order to null -> true -> false in some cases and a property controlling that order would be a great help.
Completed
Last Updated: 05 Mar 2019 11:09 by ADMIN
The Command is not respected when clicking over the Hyperlink
Completed
Last Updated: 02 Apr 2018 10:03 by ADMIN
The current workaround we can offer is to define the following style for the RadioButton element:

			<Style TargetType="RadioButton" BasedOn="{StaticResource RadioButtonStyle}">
				<Style.Triggers>
					<Trigger Property="IsChecked" Value="True">
						<Setter Property="BorderBrush" Value="{telerik1:FluentResource ResourceKey=AccentBrush}" />
					</Trigger>
				</Style.Triggers>
			</Style>

Where 
        xmlns:telerik1="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls"
Declined
Last Updated: 11 Dec 2017 13:02 by ADMIN
ADMIN
Created by: Lance | Senior Manager Technical Support
Comments: 0
Category: Buttons
Type: Bug Report
1
Custom property values for BorderThickness and BorderBrush are replaced after button click.

To reproduce, use the following code, you'll see that a highlighted border appears after clicking the button.

<telerik:RadButton Background="Gray"
                           Foreground="White"
                           BorderThickness="0"
                           BorderBrush="Transparent"
                           Content="click me"
                           HorizontalAlignment="Center"
                           VerticalAlignment="Center" />

Reason for declination: 
The border that you see is the focused state of RadButton, which is a separate visual and its BorderThickness is not template-bound to the BorderThickness of the control intentionally. We believe that a control should have focus even if its default border is removed. In our latest themes we are trying to keep this behavior. In the Office2016 theme there is an exposed palette property, which you can use in code-behind if you want to remove the focus: 
Office2016Palette.Palette.FocusThickness = new Thickness(0);
1 2 3