C#WPF以XAML样式指定文件夹

时间:2019-01-20 06:43:14

标签: c# wpf xaml resourcedictionary

我有一个结构如下的项目:

Proj
├──Views
├   ├──Dashboard.xaml
├   ├──Dashboard.cs
├
├──Styles
    ├──DashboardStyle.xaml

在我的DashboardStyle.xaml中,我有以下代码:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:local="clr-namespace:Proj.Styles">

    <Style x:Key="MyWindowStyle" TargetType="local:Proj/Views/Dashboard">
        ....
        ....
    </Style>

</ResourceDictionary>

但是它给出了错误:

  

名称空间“ clr-namespace:Proj.Styles”中不存在名称“ Proj / Views / Dashboard”

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

类型是使用namepace和类型名而不是物理文件路径来引用的。

因此要引用类型Proj.Views.Dashboard,请将相应的名称空间添加为XML名称空间声明,并在TargetType属性中使用它,例如

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:local="clr-namespace:Proj.Styles"
                xmlns:views="clr-namespace:Proj.Views" >

    <Style x:Key="MyWindowStyle" TargetType="views:Dashboard">
        ....
        ....
    </Style>

</ResourceDictionary>