External alias in XAML

喜夏-厌秋 提交于 2019-12-02 03:47:17

I'm afraid the only way around this is to rip the contents of the .g.i.cs file and move it your .cs file, tweak it up with your aliases, remove the partial keyword and then remove the x:Class from the Xaml.

Upside is the designer will still work. The downside is you need create any new control fields yourself and add the FindName code to the copy of InitializeComponent you now have in your .cs. Personally I quite like this, there are plenty of reasons to give an element a name other than it needing to be a field in the class (binding and animation being two of them). Its annoying that fields are automatically created and precious load time devoted to finding and assigning when they're never used.

Finally I've found a workaround : I've created a library project that wraps the types from the menus library.

For instance :

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

I then reference this project from my real project and can use the type through their "new" namespace "Alias".

It's a kind of "heavy alias" but seems to work.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!