【问题标题】:Common Xaml for all the page in Windows Store AppWindows Store App 中所有页面的通用 Xaml
【发布时间】:2013-08-01 12:10:03
【问题描述】:

我想制作一个 xamlpage(或只有 xaml),其中我有 xaml 控件。我想在 Windows 8 应用程序的多个页面中使用它,任何想法都值得赞赏。

【问题讨论】:

  • 你想分享什么样的控件?
  • @arun 在用户控制的情况下,我必须在每个页面上定义它..但我真的不想要那个。我希望它像一些通知一样,所以每当发生一些更新时,无论页面是什么,它都会出现在图片中..
  • 好的,你可以使用 toast 通知,但是它们有限制,因为用户可以关闭 toast 通知,所以我的想法是使用继承 Page 类的基类,并从该基类驱动每个页面。在基类中定义弹出窗口等控件并从子类中调用它。
  • @arun 我可以在 app.xaml 中做到这一点,让它成为静态的..你的意见是什么..
  • 不,你不能因为 app.xaml 继承 Application 类,它主要用于导航目的和初始化

标签: c# xaml windows-8 windows-store-apps


【解决方案1】:

这里的一个很好的起点是查看标准 Grid 应用程序模板中的 LayoutAwarePage 类。该类是 Page 类型的子类,包含许多标准功能(例如处理方向更改)

如果您创建类似于 LayoutAwarePage 的内容,您可以在其中拥有一组标准功能,您可以在您的应用中重复使用这些功能。但请注意,您可能需要在每个实际派生页面上添加更多逻辑才能使其正常工作。此外,您要在这些页面上绘制的 UI 需要在 C# 中显式编码,因为没有将 XAML 与此类关联。

【讨论】:

    【解决方案2】:

    你可以开始这样的事情......这是你的孩子课程,

            public sealed partial class ChildClass: ApplicationPageBase     
            {
                private void OnSomeEvent(object sender, TextChangedEventArgs e)
                {
                   base.IspopOpen = true;
                }
            }
    

    基类将如下所示

            public abstract class ApplicationPageBase : Page
            {
               private Popup settingsPopup;
               private bool _IsPopOpen;
               public bool IspopOpen { get;set; }
               public ApplicationPageBase()
                {
                   InitiatePopUp();
                }
               void InitiatePopUp()
                 {
                    settingsPopup = new Popup();
                     //do some code for popup
                 }
            }
    

    注意:这只是一种解决方法

    【讨论】:

    • 这个Applicationbase类可以有关联的xaml ..就像我在谈论页面..我可以直接继承页面..
    • 是的,不幸的是:) 将 xaml 作为 ControlTemplate 添加到 Application.Resources 中的 app.xaml,然后您可以在基本页面中访问它:Template = (ControlTemplate)Windows.UI.Xaml.Application。 Current.Resources["GlobalControlKey"]
    • 谢谢..你的回答很有帮助..我发现我需要休息一下..:D
    猜你喜欢
    • 2017-02-27
    • 2013-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多