代码之家  ›  专栏  ›  技术社区  ›  Pragmateek

XAML中的外部别名

  •  1
  • Pragmateek  · 技术社区  · 14 年前

    我正在使用一个实现 上下文菜单 对于 4 菜单项 班级 系统.Windows.Controls命名空间 .

    工具箱现在定义了 在同一个集合中!

    外部别名 “功能。

    如何向代码生成器(即从XAML生成“.g.i.cs”文件的生成器)指明要使用哪些别名?

    默认情况下,它总是生成 系统.Windows.ControlsMenuItem先生

    我正在使用VS2010专业版,但我还没有找到一个选项来改变这种行为。

    提前谢谢。

    2 回复  |  直到 14 年前
        1
  •  0
  •   AnthonyWJones    14 年前

    恐怕解决这个问题的唯一方法就是撕开.g.I.cs文件的内容,把它移到你的.cs文件中,用你的别名修改它,删除 partial 关键字,然后删除 x:Class 来自Xaml。

    有利的一面是设计师仍然会工作。缺点是您需要自己创建任何新的控制字段并添加 FindName 代码复制到 InitializeComponent 你现在有了你的.cs。就我个人而言,我非常喜欢这样,有很多理由给一个元素起一个名字,而不是它需要成为类中的一个字段(绑定和动画是其中的两个)。恼人的是,字段是自动创建的,宝贵的加载时间用于查找和分配,而它们从未被使用过。

        2
  •  0
  •   Pragmateek    14 年前

    最后我找到了一个解决方法: 我已经创建了一个库项目来包装菜单库中的类型。

    例如:

    namespace Alias
    {
        public class MenuItem : System.Windows.Controls.MenuItem
        {
        }
    }
    

    然后,我从实际项目中引用这个项目,并可以通过它们的“new”命名空间“Alias”使用该类型。