This is a migrated thread and some comments may be shown as answers.

Popup is opening to outside window in SplitButton

2 Answers 429 Views
Buttons
This is a migrated thread and some comments may be shown as answers.
Antony
Top achievements
Rank 1
Antony asked on 15 Apr 2017, 06:00 PM

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 Answers, 1 is accepted

Sort by
0
Evgenia
Telerik team
answered on 19 Apr 2017, 06:24 PM
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.
0
Antony
Top achievements
Rank 1
answered on 21 Apr 2017, 06:10 AM

Hi Evengina,

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

 

Regards,

Antony 

Tags
Buttons
Asked by
Antony
Top achievements
Rank 1
Answers by
Evgenia
Telerik team
Antony
Top achievements
Rank 1
Share this question
or