从Scrollviewer打开弹出窗口

时间:2013-12-04 16:54:36

标签: c# xaml popup windows-runtime scrollview

我正在使用XAML创建一个WinRT应用程序,我有一个控件,当TextBox获得焦点时,它有一个TextBox和一个在其下面打开的Popup。 弹出窗口的宽度与TextBox的宽度相同。这工作正常,但如果我把我的控件放在ScrollViewer中并放大弹出窗口的大小不会改变。我想实现类似于标准ComboBox的东西,当它嵌套在ScrollViewer中时,它会改变Popup的大小。我该怎么办?

我知道弹出窗口必须是VisualTree的一部分,但我不太确定如何在不改变现有布局的情况下添加它。 谢谢

1 个答案:

答案 0 :(得分:0)

要让弹出窗口成为TextBox的父级,您可以修改TextBox的模板并将其放入其中(您可以将TextBox子类化为两者添加对下拉列表的支持逻辑并同时更改默认模板)或只是使用Grid找到TextBox的根VisualTreeHelper。默认情况下,TextBox的根目录为Grid,因此您可以将其Popup添加到其Children