命名空间“Demo.MahApps.Metro”中不存在类型或命名空间名称“Controls”

时间:2014-03-16 11:32:58

标签: c# wpf xaml windows-8 mahapps.metro

我现在开始使用MahApps.Metro UI工具包了。但我得到了第一个问题:(

  

类型或命名空间名称'控件'名称空间中不存在“Demo.MahApps.Metro”

我的MainWindow.xaml是:

<controls:MetroWindow x:Class="Demo.MahApps.Metro.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
    Title="MainWindow" Height="350" Width="525">

<Window.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Window.Resources>

<Grid>

</Grid>

他的守则背后:

namespace Demo.MahApps.Metro
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

我已经安装了预发行包:

enter image description here

Concrettly 我在自动生成的MainWindow.g.cs 中遇到此问题

public partial class MainWindow : MahApps.Metro.Controls.MetroWindow, System.Windows.Markup.IComponentConnector {

我试图把MetroWindow放在Code Behind中,但是没有用。

public partial class MainWindow : MetroWindow
{
    ...
}

感谢所有人和问候!

1 个答案:

答案 0 :(得分:1)

您的应用程序命名空间似乎隐藏了MahApps.Metro命名空间。因此,请尝试将名称空间更改为不包含MahApps.Metro的内容:

namespace Demo
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

你的XAML:

<controls:MetroWindow x:Class="Demo.MainWindow"
        .........
        .........>

创建一个新项目并使用不同的命名空间比重命名现有项目更安全,更清晰。