Popup is opening to outside window in SplitButton

3 posts, 0 answers
  1. Antony
    Antony avatar
    13 posts
    Member since:
    May 2014

    Posted 15 Apr Link to this post

    Hi Team,

    I have used the RadSplitButton to show the drop down along with button. But the drop down popup is opened outside window, please share any idea to load the popup only within window. Please refer the below code 

     

    <telerik:RadSplitButton Margin="20,152,0,0"
                            Foreground="#8F8F8F"
                            HorizontalAlignment="Left"
                            VerticalAlignment="Top"
                                    Content="DROP DOWN">
        <telerik:RadSplitButton.DropDownContent>
            <StackPanel Orientation="Vertical">
                <telerik:RadListBox ItemsSource="{Binding AddressBooks}"
                                            BorderThickness="0">
                    <telerik:RadListBoxItem>AAA AAA AAA AAA</telerik:RadListBoxItem>
                    <telerik:RadListBoxItem>BBB BBB BBB BBB</telerik:RadListBoxItem>
                    <telerik:RadListBoxItem>CCC CCC CCC CCCC CCC</telerik:RadListBoxItem>
                </telerik:RadListBox>
                <Button Content="ADD NEW"
                                BorderThickness="0,1,0,0"/>
            </StackPanel>
        </telerik:RadSplitButton.DropDownContent>
    </telerik:RadSplitButton>

     

    Please refer the attached image to know more about the issue. And I am using Windows 8.1 OS.

     

    Regards,

    Antony Raj

     

  2. Evgenia
    Admin
    Evgenia avatar
    1437 posts

    Posted 19 Apr Link to this post

    Hello Antony,

    What it seems to me from your sample Image is that your Popups alignment is Right unlike the default one which is Left. This causes the Popup to get outside the boundaries of the Window when opened. Being on top of everything (even the Window's borders) is the default and natural behaviour of MS Popup when opened.Techically the Popup is an Adorner which always occupies the top layer in Z order. 

     You can easily verify the alignment I mentioned if you open any popup either in DropDownButton or SplitButton or Menu that's part of your VisualStudio for example. Please mind that this behaviour is controlled by your Windows OS Handedness setting. By default the setting is "Left-handed" which aligns the popups at left of their parent. It seems that the Handedness on your side is set to "Right-handed" which aligns the popups at the right side. 

    You can change the Handedness by opening the Tablet PC Settings of Windows and click the "Other" tab. To open the Table PC Settings you can open the "Run" prompt and enter the following command:
    "%windir%\explorer.exe shell:::{80F3F1D5-FECA-45F3-BC32-752C152E456E}". This approach is explained here.

    You can also change the application Handedness only by setting one of the system parameter static properties. Here is an example:

    public static void SetAlignment()
    {
        var ifLeft = SystemParameters.MenuDropAlignment;
        if (ifLeft)
        {
            // change to false
            var t = typeof(SystemParameters);
            var field = t.GetField("_menuDropAlignment", BindingFlags.NonPublic | BindingFlags.Static);
            field.SetValue(null, false);
            ifLeft = SystemParameters.MenuDropAlignment;
        }
    }

    We also have a feature request to allow the ribbonview to ignore the handedness settings. You can track its status from this link.

    Let me know how this works for you.

    Regards,
    Evgenia
    Telerik by Progress
    Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.
  3. Antony
    Antony avatar
    13 posts
    Member since:
    May 2014

    Posted 21 Apr in reply to Evgenia Link to this post

    Hi Evengina,

    Thanks for the update, will check this solution and let you know.

     

    Regards,

    Antony 

Back to Top