<Application x:Class="SparkClient.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:baseView="clr-namespace:SparkClient.Views.BaseWindow"
             xmlns:baseVM="clr-namespace:SparkClient.ViewModel.BaseWindow"
             xmlns:views="clr-namespace:SparkClient.Views"
             xmlns:configVM="clr-namespace:SparkClient.ViewModel.Configuration"
             xmlns:configView="clr-namespace:SparkClient.Views.Configuration"
             xmlns:gradingView="clr-namespace:SparkClient.Views.Grading"
             xmlns:gradingVM="clr-namespace:SparkClient.ViewModel.Grading"
             xmlns:viewModel="clr-namespace:SparkClient.ViewModel" 
             xmlns:dialogVM="clr-namespace:SparkClient.ViewModel.Dialog"
             xmlns:dialogView="clr-namespace:SparkClient.Views.Dialog"
             xmlns:settingsPages="clr-namespace:SparkClient.ViewModel.Configuration.SettingsPages"
             xmlns:settingPages="clr-namespace:SparkClient.Views.Configuration.SettingPages"
             xmlns:configuration="clr-namespace:System.Configuration;assembly=System.Configuration.ConfigurationManager"
             xmlns:sparkClient="clr-namespace:SparkClient"
             StartupUri="LoginWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
                <ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
                <!-- <ResourceDictionary Source="pack://application:,,,/HandyControl;component/themes/skindark.xaml"/> -->
                <ResourceDictionary Source="/Language/en_US.xaml"/>
                <ResourceDictionary Source="/Language/zh_CN.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <ResourceDictionary x:Key="zh-cn" Source="/Language/zh_CN.xaml"/>
            <ResourceDictionary x:Key="en" Source="/Language/en_US.xaml"/>
            
            <!-- V-VM全局映射 -->
            <DataTemplate DataType="{x:Type viewModel:MainWindowViewModel}">
                <sparkClient:MainWindow/>
            </DataTemplate>
            <DataTemplate DataType="{x:Type baseVM:HomeWindowVM}">
                <baseView:HomeWindow/>
            </DataTemplate>
            <DataTemplate DataType="{x:Type baseVM:BaseControlVM}">
                <baseView:BaseControl/>
            </DataTemplate>
            <!-- 帮助页映射 -->
            <DataTemplate DataType="{x:Type viewModel:HelperPageVM}">
                <views:HelperPage/>
            </DataTemplate>
            <!-- 配置管理、配置相关映射 -->
            <DataTemplate DataType="{x:Type configVM:ConfigMenuPageVM}">
                <configView:ConfigMenuPage/>
            </DataTemplate>
            <DataTemplate DataType="{x:Type configVM:LevelConfigVM}">
                <configView:LevelConfigPage/>
            </DataTemplate>
            <DataTemplate DataType="{x:Type configVM:CutConfigVM}">
                <configView:CutConfigPage/>
            </DataTemplate>
            <DataTemplate DataType="{x:Type configVM:AlgorithmConfigVM}">
                <configView:AlgorithmConfigPage/>
            </DataTemplate>
            <!-- 系统配置 -> 通用配置 -->
            <DataTemplate DataType="{x:Type settingsPages:SettingsVM}">
                <settingPages:CustomSettingPage/>
            </DataTemplate>
            <!-- 系统配置 -> 模型颜色配置 -->
            <DataTemplate DataType="{x:Type settingsPages:ModelColorSetPageVM}">
                <settingPages:ModelColorSetPage/>
            </DataTemplate>
            <!-- 系统配置框架 -->
            <DataTemplate DataType="{x:Type configVM:SettingBaseVM}">
                <configView:SettingPageBase/>
            </DataTemplate>
            <!-- 检测、检测结果映射 -->
            <DataTemplate DataType="{x:Type gradingVM:DiamondSelectVM}">
                <gradingView:DiamondSelect />
            </DataTemplate>
            <DataTemplate DataType="{x:Type gradingVM:GradingResultVM}">
                <gradingView:GradingResult/>
            </DataTemplate>

        </ResourceDictionary>
    </Application.Resources>
</Application>