适用于UWP的应用程序广泛的Flyout

我在我的应用程序中有一个弹出窗口,用于将其他联系人添加到本地数据库中。 此弹出窗口当前被声明为页面资源,并且完全符合我的需要,但是为了在不同的页面上重新使用它,我需要将弹出窗口的xaml和任何attatched事件复制到每个页面。需要使用它(有几个地方可能需要添加联系人)

有没有办法全局定义一个弹出窗口,这样我只需要引用它而不是每次硬编码? 我考虑使用ContentDialog (因为它可以定义为自己的模块),但我不认为这是合适的

如果在代码中完全创建不是一个选项,您可以在后台创建一个带有类的ResourceDictionary。 首先是Styles.xaml

      

这里重要的是x:Class ,其中值必须是我们现在创建的相关类的名称空间+名称(在这种情况下为Styles.cs ):

 namespace MyClass { public partial class Styles { public Styles() { this.InitializeComponent(); } // my events from flyout } } 

确保该类声明为partial并在构造函数中调用this.InitializeComponent()

现在在你的app资源中添加一个引用:

          

然后,您可以将Flyout作为静态资源访问,例如: