为什么这个XAML的行为不同?元素离开应用程序窗口UWP

为什么这个XAML的行为不同?元素离开应用程序窗口UWP,xaml,uwp,Xaml,Uwp,我有一个带有下拉按钮弹出按钮的应用程序。我正在将XAML迁移到一个新项目中,而dropdownbutton的行为有所不同。在第一个实例中,下拉弹出按钮将对齐到按钮的左边缘(我希望它这样做)。在第二个实例中,它与按钮的右边缘对齐,并包含在应用程序窗口中 XAML 第一个应用程序(我希望它看起来如何) 第二个应用程序 这两个应用程序之间有许多不同之处,但xaml几乎完全相同。我似乎无法准确指出是什么原因导致这次飞行行为不同。谢谢你能提供的任何帮助 这些差异是在同一台电脑上看到的吗?我记得,当

我有一个带有下拉按钮弹出按钮的应用程序。我正在将XAML迁移到一个新项目中,而dropdownbutton的行为有所不同。在第一个实例中,下拉弹出按钮将对齐到按钮的左边缘(我希望它这样做)。在第二个实例中,它与按钮的右边缘对齐,并包含在应用程序窗口中

XAML

第一个应用程序(我希望它看起来如何)

第二个应用程序


这两个应用程序之间有许多不同之处,但xaml几乎完全相同。我似乎无法准确指出是什么原因导致这次飞行行为不同。谢谢你能提供的任何帮助

这些差异是在同一台电脑上看到的吗?我记得,当用户选择鼠标作为右手或左手时,菜单会显示在不同的一面。我会仔细研究一下,但很肯定不是这样,因为屏幕截图来自同一台计算机,两个应用程序同时打开。我的猜测是,这与菜单无法离开窗口边界有关,因此它默认位于按钮右侧,但不确定是什么导致了这种情况。我可以知道您创建的两个应用程序之间的区别吗?它们都是UWP应用程序吗?如果您想显示如图1所示的弹出型按钮,可以尝试使用方法显示放置在指定偏移处的弹出型按钮,如果可能和需要,它会自动在应用程序窗口外渲染。非常感谢您的建议。添加FileFlyout.ShowAt(主网格,打开);to public MainPage()允许菜单弹出按钮扩展到窗口外部。但是,当我第一次打开菜单时,它会像以前一样在应用程序窗口中打开。第二次单击时,将延伸到窗口之外。这可能与ShowAt()的documnetation中提到的有关:“某些属性可能无法按预期流动,例如FlowDirection。为确保流动正确,您可以在MenuFlyoutPresenter中设置流动方向。在首次显示MenuFlyoutPresenter之前,必须先设置MenuFlyoutPresenter。”@faywang MSFT关于应用程序之间的差异,第二个是我正在修改的存储库,所以我仍在挖掘它,但据我所知,它似乎与我的原始应用程序具有相同的代码结构。这些差异在同一台PC上看到了吗?我记得,当用户选择鼠标作为右手或左手时,菜单会显示在不同的一面。我会仔细研究一下,但很肯定不是这样,因为屏幕截图来自同一台计算机,两个应用程序同时打开。我的猜测是,这与菜单无法离开窗口边界有关,因此它默认位于按钮右侧,但不确定是什么导致了这种情况。我可以知道您创建的两个应用程序之间的区别吗?它们都是UWP应用程序吗?如果您想显示如图1所示的弹出型按钮,可以尝试使用方法显示放置在指定偏移处的弹出型按钮,如果可能和需要,它会自动在应用程序窗口外渲染。非常感谢您的建议。添加FileFlyout.ShowAt(主网格,打开);to public MainPage()允许菜单弹出按钮扩展到窗口外部。但是,当我第一次打开菜单时,它会像以前一样在应用程序窗口中打开。第二次单击时,将延伸到窗口之外。这可能与ShowAt()的documnetation中提到的有关:“某些属性可能无法按预期流动,例如FlowDirection。为确保流动正确,您可以在MenuFlyoutPresenter中设置流动方向。在首次显示MenuFlyoutPresenter之前,必须先设置MenuFlyoutPresenter。”@faywang MSFT关于应用程序之间的差异,第二个是我正在修改的存储库,因此我仍在挖掘它,但就我所知有限,它似乎与我的原始应用程序具有相同的代码隐藏结构。
    <DropDownButton ToolTipService.ToolTip="File"
                    VerticalAlignment="Top"
                    HorizontalAlignment="Left" Background="Transparent"
                    Style="{StaticResource CommandBarFlyoutEllipsisButtonStyle}"
                    Height="33"
                    FontFamily="Segoe MDL2 Assets" Content="&#xE700;">

        <DropDownButton.Flyout>
            <MenuBarItemFlyout Placement="LeftEdgeAlignedTop">

                <MenuFlyoutItem Text="Open File" Icon="OpenFile" Tag="Open File"
                        Click="OpenLocalFile"/>

            </MenuBarItemFlyout>
        </DropDownButton.Flyout>

    </DropDownButton>