在此处观看演示
我有一个UWP应用,其中ListView
具有可选择的列表项,如图所示。选择项目的右侧将打开Flyout
(而不是MenuFlyout
)。我在Placement
样式中指定Flyout
的{{1}}为Bottom
,Margin
为0, -4, 0, 0
。这会产生所需的外观,FlyoutPresenter
直接位于项目的下方和附近。
但是,如果没有足够的空间显示Flyout
,则系统会自动将其移至Flyout
Placement
。即使我将Top
样式的边距定义为-4底部边距,也不会应用它。
有没有办法移动FlyoutPresenter
?如果可能的话,我宁愿不使用Flyout
,因为没有任何东西可供选择。弹出窗口没有MenuFlyout
附加属性,并且更新Canvas
最顶级子项的Canvas.Top
位置不起作用(我真的没想到它)。
修改:所需的行为是Flyout
出现在Flyout
Top
中,正如所发生的那样,但Placement
之间没有空格{1}}和Flyout
。
答案 0 :(得分:2)
根据Quickstart: Adding a Flyout放置弹出部分:
如果屏幕上有空间,则使用首选位置显示弹出按钮。如果没有足够的空间,例如当元素靠近屏幕边缘时,将使用此回退顺序放置弹出按钮。
当placement
设置为bottom
时,如果没有足够的空间,它将放置在设计的顶部。
但没有Flyout和目标之间的空间
如果底部没有足够的空间,则Flyout
位于顶部,此时,margin
的{{1}}应更改为FlyoutPresenter
而不是0,4,0,0
{1}}可以访问与底部相同的效果。但是您不知道0,-4,0,0
是置于顶部还是底部,因此作为解决方法,您可以将Flyout
设置为margin
,以使0,-5,0,-5
元素位于控件模板Border
内{1}}可以满足您的要求。例如:
FlyoutPresenterStyle